2011-08-06 14 views
16

Używam Remy Sharp's labelover plugin for jQuery i chciałbym wykluczyć etykietę z atrybutem for i wartości nature.Etykieta jQuery 'for' selektor atrybutu

Oto przykład z pracy kodu:

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

i co próbuję zrobić:

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

Czy ktoś może zobaczyć, gdzie idę źle? Czuję, że jestem całkiem blisko tego, co muszę zrobić.

Odpowiedz

2

.attr('for', 'nature') jest ustawienie wartości dla atrybutu for do nature

Aby filtrować wg atrybutów, użyj [attribute="value"]:

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

attr nie jest selektor, jest to funkcja, która pobiera wartość atrybutu z atrybutem name jako pierwszy argument lub ustawia go z nową wartością, jeśli zostanie podany jako argument 2ng.

Wykluczono również etykiety po wybraniu ich za pomocą połączenia not, ponieważ selektor label pasował do wszystkich etykiet, a attr, jak już powiedziałem, nie filtrowało tego.

aby wybrać na podstawie atrybutu, użyj tego:

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

Jak można się domyślić, [attribute='value'] jest selektor atrybutu „równości” do pewnej wartości, a [attribute!='value'] jest „nie równa się” wersja tego.

patrz odnośnik:
http://api.jquery.com/attribute-not-equal-selector/

Dla porównania na wszystkich selektorów:
http://api.jquery.com/category/selectors/

ta jest również określany w moim JavaScript & Web Dev Newsletter site.