首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery标签'for‘属性选择器

jQuery标签'for‘属性选择器
EN

Stack Overflow用户
提问于 2011-08-06 22:25:28
回答 3查看 67.4K关注 0票数 18

我正在使用人头马的labelover plugin for jQuery,并且我想排除一个具有属性for和值nature的标签。

以下是代码工作的示例:

代码语言:javascript
复制
$(document).ready(function() {
    $('form.default label').labelOver('over');
});

我想要做的是:

代码语言:javascript
复制
$(document).ready(function() {
    $('form.default label').not($('label').attr('for','nature')).labelOver('over');
});

有人能看出我哪里错了吗?感觉我离我需要做的事情已经很近了。

EN

回答 3

Stack Overflow用户

发布于 2011-08-06 22:30:01

attr不是选择器,它是一个函数,它以属性名称作为第一个参数获取属性值,如果作为2 2ng参数传递,则使用新值设置属性值。

此外,您在使用not调用选择标签后将其排除在外,因为选择器label匹配所有标签,而正如我所说的attr不会对此进行过滤。

要基于属性进行选择,请使用以下命令:

代码语言:javascript
复制
$(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中被引用。

票数 26
EN

Stack Overflow用户

发布于 2011-08-06 22:28:27

.attr('for', 'nature')正在将for属性的值设置为nature

要按属性过滤,请使用[attribute="value"]

代码语言:javascript
复制
$('form.default label').not('[for="nature"]').labelOver('over')
票数 2
EN

Stack Overflow用户

发布于 2011-08-06 22:34:04

工作代码:http://jsfiddle.net/3nQbr/1/

代码语言:javascript
复制
$('label').not('[for="nature"]').labelOver('over');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6967453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档