jQuery标签'for'属性选择器
Posted
技术标签:
【中文标题】jQuery标签\'for\'属性选择器【英文标题】:jQuery label 'for' attribute selectorjQuery标签'for'属性选择器 【发布时间】:2011-10-21 12:00:18 【问题描述】:我正在使用 Remy Sharp 的 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');
);
谁能看出我哪里出错了?感觉我已经非常接近我需要做的事情了。
【问题讨论】:
【参考方案1】:attr
不是选择器,它是一个函数,它以属性名称作为第一个参数获取属性值,或者如果将其作为第二个参数传递,则将其设置为新值。
此外,您在使用 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 也有引用。
【讨论】:
【参考方案2】:.attr('for', 'nature')
正在将for
属性的值设置为nature
要按属性过滤,请使用[attribute="value"]
:
$('form.default label').not('[for="nature"]').labelOver('over')
【讨论】:
【参考方案3】:工作代码:http://jsfiddle.net/3nQbr/1/
$('label').not('[for="nature"]').labelOver('over');
【讨论】:
以上是关于jQuery标签'for'属性选择器的主要内容,如果未能解决你的问题,请参考以下文章