2009-03-30 12 views
28

Ich muss alle untergeordneten Elemente finden und durchlaufen, die ein bestimmtes Attribut haben. Der folgende Code funktionierte gut in jquery 1.2.6, sondern wirft Ausnahme in 1.3.2jquery v1.3.2 Element nach Attribut finden

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

Was ist der richtige Weg, dies zu erreichen?

Antwort

40

Nur loswerden der @, glaube ich.

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

Aus dem jQuery selector docs:

Hinweis: jQuery 1.3 [@attr] Stil Selektoren entfernt wurden (sie waren veraltete zuvor in jQuery 1.2). Entfernen Sie einfach das '@' Symbol von Ihren Selektoren, damit sie wieder funktionieren .

+0

Das @ -Symbol aus dem ursprünglichen XPath Typselektor, IIRC – alex

+0

jede mögliche Weise Acording war ändern zu finden, Attribué gleich bestimmten Wert? –

+1

Sie können ein einfaches '$ ('div [someAttributeName]') verwenden. Jedes()', um nach dem Attribut –

2

Beachten Sie das "@", bevor der Attributname ab Version 1.2 veraltet war.

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

Entfernen Sie es einfach und Sie sind gut zu gehen.

2

[@attribute] Die Notation ist in jQuery 1.3 veraltet. Entfernen Sie das @ Zeichen und Sie sind gut zu gehen.

1

ithink arbeiten ist dies der beste Weg, um etwas davon zu finden und können

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

         }); 
Verwandte Themen