2017-09-25 4 views
-1

Supposons que j'ai un <li id="gen__1002_____46.14_li">Impossible d'utiliser le sélecteur de requête avec des ID comprenant "."

Je veux sélectionner cette li.

Pour pouvoir y parvenir, je l'ai écrit,

var id="gen__1002_____46.14_li"; 
document.querySelector("#" + id); 

Mais retourne querySelector comme;

Failed to execute 'querySelector' on 'Element': '#gen__1002_____46.14' is not a valid selector. 

Lorsque id ne comprend pas dot caractère, il sélectionne correctement.

Ma question est, comment puis-je sélectionner un élément html dom où son id comprend . char. Y at-il une restriction que l'ID ne peut pas inclure . char.

Y a-t-il une solution pour moi plutôt que de supprimer .s dans ids.

+0

Essayez comme $ ('# gen__1002 _____ 46 \\. 14_li'); ' – Znaneswar

+0

Je l'ai déjà essayé, mais cela retourne comme; DOMException non interceptée: Echec de l'exécution de 'querySelector' sur 'Element': '# gen__1002 _____ 46 \\. 14' n'est pas un sélecteur valide. – mmu36478

Répondre

0

Vous devez échapper à la dot

$('#thisIs\\.anId') // will select <span id="thisIs.anId">test</span> 

Et js pur:

var id="gen__1002_____46.14_li"; 
id = id.replace(/\./g, '\\\\.'); // escaping dots using regex 
document.querySelector("#" + id); 

EDIT

Si vous voulez juste sélectionner l'élément par id, utilisez getElementById()

document.getElementById(id); 
+0

Je l'ai déjà essayé, mais cela retourne comme; 'DOMException Uncaught: Echec de l'exécution de 'querySelector' sur 'Element': '# gen__1002 _____ 46 \\. 14' n'est pas un sélecteur valide. – mmu36478

+0

@ mmu36478 Quel navigateur utilisez-vous? – mrid

+0

@ mmu36478 vérifier la réponse mise à jour – mrid