一个与hasclass()函数结合的选择器

时间:2014-02-26 02:36:31

标签: jquery class selector

我现在正在练习我的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/

2 个答案:

答案 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]);