-1

如何在此语句中添加另一个不等于 (!=) 值?

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

我尝试在确定它是否相等的函数开头反转语法,但这阻止了它完全删除项目(包括那些不等于 1 的项目)

if ($(this).data("increase_priority1") && $(this).val() != 1 && $(".complaint select").val() != "Too_small")

当用户同时选择投诉并对问题的重要性级别进行排序时,此函数会从“increase_priority1”中添加和/或删除值,我需要它来更改值(在这种情况下是投诉)和重要性级别(即 increase_priority1) 如果这两个字段中的任何一个发生变化。目前,它仅在重要性级别发生变化时才会发生变化。

完整的功能是:

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

小提琴在上下文中显示了这一点:http: //jsfiddle.net/chayacooper/vWLEn/132/

4

1 回答 1

2

当至少一个操作数为真(可能两者都为真!)时,或运算为真。你的陈述应该是:

if ($(this).data("increase_priority1") && 
    ($(this).val() != 1 || $(".complaint select").val() != "Too_small")). 

||是 OR 的 Javascript 语法。

这将运行ifif .data("increase_priority1")is true and $(this).val() != 1 or $(".complaint select").val() != "Too_small") is true。

请注意,如果第一部分&&为假,解释器将停止,也就是说:它甚至不会看第二部分。的情况相同||,但反过来,所以如果 的第一部分||为真,则不会查看第二部分。

于 2012-11-23T19:57:43.903 回答