我现在正在练习我的JS技能和Jquery。
var clickcheckboxcount=0;
var clickedcheckboxname = new Array();
var clickedcheckboxvalue = new Array();
$("#input[type=checkbox]").click(function(){
if ($('div:not([class~=clicked])'){
$(this).addClass(clickcheckboxcount+'clicked');
clickedcheckboxname.push($(this).attr("name"));
clickedcheckboxvalue.push($(this).val());
clickedcheckboxcount+=1;
}
在HTML正文部分中有一个serval复选框,其中包含不同的名称和值。我只想通过点击它们来获取它们的attr和name,并且不希望在数组中推送相同的值。那么如何重写if()函数呢?
我将代码演示放在http://jsfiddle.net/Lza2L/
中答案 0 :(得分:1)
您可以尝试使用:not选择器:
$('div:not(.0clicked,.1clicked,.2clicked,.3clicked,.5clicked,.5clicked)')
或is():
if (!$(this).is(".0clicked, 1clicked, 2clicked, 3clicked, 4clicked, 5clicked"))) {
// Your code here
}
1)你需要在你的小提琴中包含jQuery
2)将#input[type=checkbox]
更改为input[type=checkbox]
。 #
用于定位id
。您在选择器中不需要它。
<强> Updated Fiddle 强>
答案 1 :(得分:0)
我认为在这种情况下,与not()
结合使用的属性选择器会起作用:
$('div:not([class$=clicked]);
这将选择具有以“clicked”结尾的类值的元素。当然,在元素有多个类的情况下会出现复杂情况。
正如Arun在下面指出的那样,Contains Word选择器可能更适合:
$('div:not([class~=clicked]);