J'utilise Remy Sharp's plugin d'étiquetage pour jQuery et je voudrais exclure une étiquette avec l'attribut for
et la valeur nature
.
Voici un exemple de fonctionnement du code:
$(document).ready(function() {
$('form.default label').labelOver('over');
});
et ce que j'essaie de faire:
$(document).ready(function() {
$('form.default label').not($('label').attr('for','nature')).labelOver('over');
});
Quelqu'un peut-il voir où je me trompe? J'ai l'impression d'être assez proche de ce que je dois faire.
attr
n'est pas un sélecteur, c'est une fonction qui obtient la valeur d'attribut avec le nom d'attribut comme premier argument, ou la définit avec une nouvelle valeur si l'une est passée comme argument 2ng.
En outre, vous avez exclu les étiquettes après les avoir sélectionnées avec votre appel not
, car le sélecteur label
correspond à toutes les étiquettes, et attr
comme je l'ai dit ne filtre pas cela.
Pour sélectionner en fonction de l'attribut, utilisez ceci:
$(document).ready(function() {
$("form.default label[for!='nature']").labelOver('over');
});
Comme vous l'avez peut-être deviné, le [attribute='value']
est le sélecteur d'un attribut "égal" à une valeur, et [attribute!='value']
en est la version "différente".
Pour référence, voir:
http://api.jquery.com/attribute-not-equal-selector/
Pour référence sur tous les sélecteurs:
http://api.jquery.com/category/selectors/
Ceci est également référencé sur mon site de newsletter JavaScript et Web Dev .
.attr('for', 'nature')
définit la valeur de l'attribut for
sur nature
Pour filtrer par attributs, utilisez [attribute="value"]
:
$('form.default label').not('[for="nature"]').labelOver('over')
code de travail: http://jsfiddle.net/3nQbr/1/
$('label').not('[for="nature"]').labelOver('over');