2009-03-30 17 views
28

Necesito encontrar e iterar a través de todos los elementos secundarios que tienen un atributo específico. El siguiente código funcionó bien en jQuery 1.2.6, pero lanza una excepción en 1.3.2jquery v1.3.2 buscar elemento por atributo

$(parentElement).find('*[@someAttributeName]').each(function(index){ 
    doSomething(this); 
}); 

Cuál es la forma correcta para lograr eso?

Respuesta

40

Sólo deshacerse de la @, creo.

$(parentElement).find('[someAttributeName]').each(function(index){ 
    doSomething(this); 
}); 

De los jQuery selector docs:

Nota: En jQuery 1.3 [@attr] estilo selectores se eliminaron (eran previamente en desuso en jQuery 1.2). basta con quitar el símbolo '@' desde sus selectores con el fin de hacer que funcionen nuevo.

+0

El símbolo @ fue desde el selector de tipo de XPath original, IIRC – alex

+0

cualquier forma de encontrar según attribué es igual a un valor específico? –

+1

Se puede utilizar un simple '$ ('div [someAttributeName]') cada uno()' para encontrar por atributos –

2

Tenga en cuenta la "@" antes de que el nombre del atributo haya quedado obsoleto a partir de la versión 1.2.

$(parentElement).find('*[someAttributeName]').each(function(index){ 
    doSomething(this); 
}); 

Solo quítalo y listo.

2

[@attribute] notación está en desuso en jQuery 1.3. Retire el signo @ y listo.

1

ithink esta es la mejor manera de encontrar y pueden cambiar algo de ella

$('.youritem').each(function(){ 
          if($(this).attr('title') == 'add image') 
              $(this).attr('id','imageuploader'); 

         }); 
Cuestiones relacionadas