2011-08-06 119 views
16

我正在使用Remy Sharp的labelover plugin for jQuery,我想排除一个标签,其属性为for,值为naturejQuery标签“for”属性选择器

下面的代码工作的一个例子:

$(document).ready(function() { 
    $('form.default label').labelOver('over'); 
}); 

和我想要做的事:

$(document).ready(function() { 
    $('form.default label').not($('label').attr('for','nature')).labelOver('over'); 
}); 

任何人都可以看到我要去哪里错了吗?感觉我很接近我需要做的事情。

回答

2

.attr('for', 'nature')针对for属性值设置为nature

要按属性筛选,使用[attribute="value"]

$('form.default label').not('[for="nature"]').labelOver('over') 
25

attr是不是一个选择,那就是与属性得到属性值的函数name作为第一个参数,或者如果其中一个作为2ng参数传递,则将其设置为新值。

此外,您选择not时选择了它们,因为选择器label与所有标签匹配,而attr正如我所说的那样没有过滤该标签。

选择基于属性,使用:

$(document).ready(function() { 
    $("form.default label[for!='nature']").labelOver('over'); 
}); 

正如你可能已经猜到了,[attribute='value']是一些值的属性“平等”的选择,并且[attribute!='value']是“不等于”版本的。

更多信息参见:
http://api.jquery.com/attribute-not-equal-selector/

以供参考所有的选择:
http://api.jquery.com/category/selectors/

这也是我JavaScript & Web Dev Newsletter site引用。