2009-09-04 5 views
5

Je regarde le site de jquery au sélecteur de contenu.Comment utiliser Jquery contient?

$("div:contains('John')").css("text-decoration", "underline"); 

Comment puis-je faire ceci afin qu'il prenne une valeur non codée en dur? Je ai essayé de faire quelque chose comme ça

$("div:contains(" + name + ")") 

mais cela ne semble pas fonctionner et est très salissant. Je manque probablement un peu d'orthèse ou quelque chose mais est-ce qu'il y a une manière propre qui fonctionnera? Puisque même si j'obtiens ceci pour fonctionner la prochaine fois que je dois m'étendre, ce sera le même problème avec autant de concaténations et d'autres choses.

Répondre

11

Vous manque les guillemets autour du paramètre.

$('div:contains("' + name + '")').css(...); 

J'essaie de toujours utiliser des guillemets simples pour délimiteurs de chaîne, et des guillemets doubles pour les citations réelles dans les chaînes lors de l'écriture JS. D'une manière ou d'une autre, ça marche, mais être cohérent aide à lire les chaînes =)

+0

Personnellement, je préfère l'inverse, mais la cohérence est la clé. +1 –

+0

Oui - dans les deux cas, la cohérence est la clé. Je préfère les guillemets simples comme délimiteurs de chaînes surtout parce que je pense que cela rend le code plus "propre" - pour chaque chaîne il y a deux points de moins sur mon écran ...;) D'autre part, si vous voulez de la cohérence avec d'autres langages , par exemple), vous voulez probablement utiliser des guillemets doubles. –

+0

J'aime utiliser des guillemets simples en javascript puisque vous n'avez pas besoin d'échapper les attributs html. Je dois avouer parfois que j'utilise des guillemets doubles (si je le vois je le corrige) car c'est un must en C# et dans la plupart des autres langages. Ya c'est ce que je pensais avoir oublié quelque chose. AUCUN moyen de le corriger? ils devraient ajouter comme String.Format de C# à jquery qui rendrait les choses plus agréables. – chobo2

5

l'essayer $ ("div: contient ('" + nom + ")")

Questions connexes