我正在使用人头马的labelover plugin for jQuery,并且我想排除一个具有属性for
和值nature
的标签。
以下是代码工作的示例:
$(document).ready(function() {
$('form.default label').labelOver('over');
});
我想要做的是:
$(document).ready(function() {
$('form.default label').not($('label').attr('for','nature')).labelOver('over');
});
有人能看出我哪里错了吗?感觉我离我需要做的事情已经很近了。
发布于 2011-08-06 22:30:01
attr
不是选择器,它是一个函数,它以属性名称作为第一个参数获取属性值,如果作为2 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中被引用。
发布于 2011-08-06 22:28:27
.attr('for', 'nature')
正在将for
属性的值设置为nature
要按属性过滤,请使用[attribute="value"]
$('form.default label').not('[for="nature"]').labelOver('over')
发布于 2011-08-06 22:34:04
工作代码:http://jsfiddle.net/3nQbr/1/
$('label').not('[for="nature"]').labelOver('over');
https://stackoverflow.com/questions/6967453
复制相似问题