Duplicate possible:
Comment sélectionner les nœuds html par ID avec jquery lorsque l’ID contient un point?
J'ai un site web qui contient des éléments similaires à celui-ci:
<p id="root.SomeCoolThing">Some Cool Thing</p>
Je ne peux pas sélectionner le paragraphe avec jQuery comme $('#root.SomeCoolThing')
car jQuery pense que SomeCoolThing
est la classe d'un élément avec id="root"
.
Comment puis-je sélectionner cet élément avec jQuery? Je voudrais éviter une construction comme celle-ci:
$(document.getElementById('root.SomeCoolThing'))
Utilisez les règles d'échappement de = API de sélecteurs jQuery comme suit:
$('#root\\.SomeCoolThing')
De la docs :
Pour utiliser n'importe lequel des méta-caractères (tels que
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
) en tant que partie littérale d'un nom, il doit être échappé avec deux barres obliques inverses:\\
. Par exemple, un élément avecid="foo.bar"
Peut utiliser le sélecteur$("#foo\\.bar")
.
Utiliser attr fonctionne:
$('p[id="root.SomeCoolThing"]')
Vous devez échapper des caractères spéciaux:
$('#root\\.SomeCoolThing')
Si vous souhaitez utiliser l'un des méta-caractères (tels que ! "# $% & '() * +,./:; <=>? @ [] ^` {| } ~ ) en tant que partie littérale d'un nom, vous devez échapper le caractère avec deux barres obliques inverses: \\. Par exemple, si vous avez un élément avec id = "foo.bar", vous pouvez utiliser le sélecteur $ ("# foo \\. bar").
Vous pouvez échapper à la période en utilisant quelque chose comme ça
$("#root\\.SomeCoolThing")
Comment faire en sorte que jQuery sélectionne des éléments avec un. (Période) dans leur ID?http://groups.google.com/group/jquery-en/browse_thread/thread/ba072168939b245a ? pli = 1
Tirer de la hanche ici, mais si vous ne pouvez pas changer l'ID de l'élément, essayez d'utiliser ce sélecteur:
$("p[id=root.SomeCoolThing]")
Utilisez deux barres obliques inverses avant chaque caractère spécial
$('#root\\.SomeCoolThing')