2011-08-06 13 views
16

Estoy usando Remy Sharp's labelover plugin for jQuery y me gustaría excluir una etiqueta con el atributo for y el valor nature.jQuery label 'for' atributo selector

He aquí un ejemplo del trabajo código:

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

y lo que yo estoy tratando de hacer:

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

Puede alguien ver dónde voy mal? Me siento como si estuviera muy cerca de lo que tengo que hacer.

Respuesta

2

.attr('for', 'nature') está estableciendo el valor para el atributo for-nature

Para filtrar por atributos, utilice [attribute="value"]:

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

attr no es un selector, que es una función que obtiene el valor del atributo con el atributo nombre como primer argumento, o lo establece con un nuevo valor si uno se pasa como un argumento de 2 ng.

Además, se ha excluido etiquetas después de seleccionarlas con su llamada not, debido a que el selector de label acertó los sellos, y attr como ya he dicho que no filtrar.

para seleccionar basado en el atributo, utilice esto:

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

Como habrán adivinado, el [attribute='value'] es el selector para un atributo "igual" a un cierto valor, y [attribute!='value'] es la versión "es igual a" de eso

Para referencia, véase:
http://api.jquery.com/attribute-not-equal-selector/

Para tener una referencia en todos los selectores:
http://api.jquery.com/category/selectors/

Esto también es referenciado en mi JavaScript & Web Dev Newsletter site.