2009-09-04 26 views
5

Ich schaue auf die Jquery-Site bei der enthält Selektor.Wie benutzt man Jquery?

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

Wie kann ich dies so machen, dass es einen nicht hartcodierten Wert in Anspruch nimmt? Ich habe versucht, so etwas zu tun

aber das scheint nicht zu funktionieren und ist sehr chaotisch. Ich vermisse wahrscheinlich nur ein paar Klammern oder etwas, aber gibt es einen sauberen Weg, der funktioniert? Da, selbst wenn ich das zum nächsten Mal zur Arbeit bekomme, wird es wieder das gleiche Problem mit so vielen Verkettungen und so Sachen geben.

Antwort

11

Sie die Anführungszeichen um den Parameter fehlt.

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

Ich versuche immer Verwendung einfache Anführungszeichen für String-Trennzeichen und doppelte Anführungszeichen für die tatsächliche Anführungszeichen in Strings, wenn JS schreiben. Wie auch immer funktioniert, aber konsistent zu sein hilft beim Lesen der Strings =)

+0

Persönlich bevorzuge ich es andersherum, aber Konsistenz ist der Schlüssel. +1 –

+0

Ja - so oder so, und Konsistenz ist der Schlüssel. Ich bevorzuge einfache Anführungszeichen als Trennzeichen, weil ich denke, dass es den Code "sauberer" aussehen lässt - für jede Zeichenkette gibt es zwei Punkte weniger auf meinem Bildschirm ...;) Wenn Sie dagegen Konsistenz mit anderen Sprachen wünschen (C# zum Beispiel) möchten Sie wahrscheinlich doppelte Anführungszeichen verwenden. –

+0

Ich benutze gerne einzelne Anführungszeichen in Javascript selbst, da Sie HTML-Attribute nicht entkommen müssen. Ich muss zugeben, manchmal verwende ich doppelte Anführungszeichen (wenn ich es sehe, korrigiere ich es), da es ein Muss in C# und den meisten anderen Sprachen ist. Ya das ist, was ich dachte, ich habe etwas vergessen. KEIN besserer Weg, um es zu korrigieren? sie sollten wie String.Format von C# zu jquery hinzufügen, was die Dinge schöner machen würde. – chobo2

5

versuchen es $ ("div: enthält ('" + name + "')")