【问题标题】:How would I add another element to be evaluated by value to this If statement?我如何将另一个要按值评估的元素添加到此 If 语句?
【发布时间】:2012-11-21 02:49:50
【问题描述】:

如何将另一个要按值评估的元素添加到此语句中?

if ($(this).val() == 1 && !$(this).data("priority1"))?

我想使用 class 作为这个新元素的选择器(在这种特殊情况下为 class="complaint",其中一个值为 "Too_small")

我试过了(都带&不带括号)

if ($('.complaint').val() === "Too_small" && $(this).val() == 1 && !$(this).data("priority1")) 

我已经包含了下面的函数,以及一个工作示例http://jsfiddle.net/chayanyc/Dhaat/225/的小提琴

var $priority1 = $(".priority1");
$(".features_rank1").change(function() {
    var name = $(this).data("name"); //get priority name
    if ($(this).val() == 1 && !$(this).data("priority1")) {
        //rank is 1, and not yet added to priority list
        $("<option>", {text:name, val:name}).appendTo($priority1);
        $(this).data("priority1", true); //flag as a priority item
    }
    if ($(this).data("priority1") && $(this).val() != 1) {
        //is in priority list, but now demoted
        $("option[value=" + name + "]", $priority1).remove();
        $(this).removeData("priority1"); //no longer a priority item
    }
});

【问题讨论】:

  • 我不知道我是否在这里犯了错误,但是,为什么要使用“===”而不是只使用“==”?
  • @GerardDiaz == 确实类型强制,通常你总是想在 Javascript 中使用 ===

标签: jquery if-statement key-value


【解决方案1】:

试试:

$(".complaint select").val()

您需要.complaint 类下的select 标签的值。

但是,您有两个类为 .complaint 的元素,因此您需要弄清楚您想要哪一个。

【讨论】:

  • @Matt_Burland - 我没想到 ;-) 有没有办法将一个类分配给包含每个组合(问题和排名)的元素并以这种方式识别所有 3 个元素?在我的实际代码中,它都在一个表格中,并且对于大多数对它们都在同一个单元格中
  • @ChayaCooper:为元素分配独特的东西是id 的用途。所以如果你给你的第一个跨度 ID shoulders 和第二个waist,那么你可以做$("#shoulders select").val()$("#waist select").val() 来独立选择每个。
  • @Matt_Burland - 代码完美运行 :-D 你需要指定我想要哪个是对的,但是使用 ID 执行此操作非常麻烦,因为它需要为每个 ID 使用单独的 IF 语句(并且有 20 个这样的函数,有 15 个 ID 和 4 个值)。这可以像对 features_rank1 那样使用数据名称和 (this) 语句来完成吗?如果你想在上下文中看到这个,我创建了一个小提琴jsfiddle.net/chayacooper/gYtZw/22
猜你喜欢
  • 1970-01-01
  • 2018-09-06
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多