JQuery метка для атрибута селектора - PullRequest
18 голосов
/ 06 августа 2011

Я использую плагин Реми Шарпа для jQuery , и я хотел бы исключить метку с атрибутом for и значением nature.

Вот пример работы кода:

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

и что я пытаюсь сделать:

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

Кто-нибудь может увидеть, где я иду не так? Такое ощущение, что я довольно близок к тому, что мне нужно сделать.

Ответы [ 3 ]

26 голосов
/ 06 августа 2011

attr не является селектором, это функция, которая получает значение атрибута с именем атрибута в качестве 1-го аргумента или устанавливает его с новым значением, если оно передается в качестве аргумента 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 .

2 голосов
/ 06 августа 2011

рабочий код: http://jsfiddle.net/3nQbr/1/

$('label').not('[for="nature"]').labelOver('over');
2 голосов
/ 06 августа 2011

.attr('for', 'nature') устанавливает для атрибута for значение nature

Для фильтрации по атрибутам используйте [attribute="value"]:

$('form.default label').not('[for="nature"]').labelOver('over')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...