89 votes

Rechercher élément DOM par ID lorsque ID contient des crochets?

J'ai un élément du DOM avec un ID de similaire à:

something[500]

qui a été construit par mon Ruby on Rails application. J'ai besoin d'être en mesure d'obtenir cet élément via jQuery afin que je puisse traverser mon chemin jusqu'à DOM pour supprimer le parent de son parent, qui a une variable ID que je n'ai pas accès à l'avance.

Quelqu'un sait-il comment je pourrais aller à ce sujet? Le code suivant ne semble pas fonctionner:

alert($("#something["+id+"]").parent().parent().attr("id"));

Après une inspection plus poussée, les éléments suivants:

$("#something["+id+"]")

retourne un objet, mais quand je lance ".html()" ou ".text ()", le résultat est toujours nul ou tout simplement une chaîne vide.

Toute aide serait grandement appréciée.

122voto

karim79 Points 178055

Essayer:

 alert($("#something\\["+id+"\\]").parent().parent().attr("id"));
 

Voir Caractères spéciaux dans les sélecteurs (dans le deuxième paragraphe).

15voto

steampowered Points 2179

Disons que votre élément DOM est un span. Vous pouvez aussi faire

 $('span[id="something['+id+']"')
 

9voto

Quentin Points 325526

Un identifiant ne peut pas inclure de crochets. C'est interdit par la spéc .

Certains navigateurs peuvent corriger les erreurs, mais vous devriez corriger vos données au lieu d’essayer de traiter des données incorrectes.

9voto

Peter Bailey Points 62125

Les crochets ont une signification particulière pour les sélecteurs jQuery , les filtres d’attributs en particulier.

Il suffit d'échapper à ceux-ci et il va trouver votre élément

 $( "#something\\[" + id + "\\]" )
 

4voto

Tim S. Van Haren Points 5936

Essaye ça:

 alert($("#something\\["+id+"\\]").parent()[0].parent()[0].attr("id"));
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X