如何在此语句中添加另一个不等于(!=)的值?
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/
答案 0 :(得分:2)
当至少有一个操作数为真时(可能两者都是!),OR运算成立。你的陈述应该是:
if ($(this).data("increase_priority1") &&
($(this).val() != 1 || $(".complaint select").val() != "Too_small")).
||
是OR的Javascript语法。
如果if
为真且 .data("increase_priority1")
或 $(this).val() != 1
为真,则会运行$(".complaint select").val() != "Too_small")
。
请注意,如果&&
的第一部分为假,解释器将停止,也就是说:它甚至不会查看第二部分。 ||
也是如此,但反过来说,如果||
的第一部分为真,则不会查看第二部分。