2010-08-11 9 views
8

Ich bin sicher, das ist schmerzhaft einfach, aber ich kann nur scheinen, es zu finden.jQuery - Holen Sie sich eine Auswahl basierend auf Wert

Ich brauche eine Auswahl von Textfeldern aus ihrem Wert. Ich brauche den Wert nicht, ich brauche die Elemente. Ich möchte so etwas wie:

$(".ProductCode [value:'hideme']").hide(); 

ich mit

Ende
unrecognized expression: [value:'hideme'] 

btw,

$(".ProductCode").each(function() { if ($(this).val() == 'hideme') $(this).hide(); }); 

funktioniert, aber es scheint nicht sehr sauber.

+0

Es gibt keine Notwendigkeit 'each()' zu verwenden. Wenn Sie Elemente auswählen, werden Sie 'hide()' für alle ausgewählten Elemente definieren. Ich habe meine Antwort so bearbeitet, dass sie ein jsFiddle-Beispiel enthält, das zwei Textfelder gleichzeitig ausblendet. –

+0

ok, ich hatte nicht nur ein: anstelle von einem = , aber ich hatte auch einen Platz drin. Dank an beide habe ich es @ peter-ajtai für das jsFiddle-Beispiel gegeben. aber +1 zu beiden. –

Antwort

14

Verwenden Sie die attribute equals selector von jQuery

$(".ProductCode[value='hideme']").hide(); 

Um genauer zu sein, man könnte auch die Verwendung multiple attribute selector:

$("input[class='ProductCode'][value='hideme']").hide(); 

Der Unterschied zwischen den beiden ist, dass der erste wählt alle Elemente mit einem gewissen Klasse und Wert. Die zweite Option wählt nur alle INPUTs mit einer bestimmten Klasse und einem bestimmten Wert aus.

Diese Wahlschalter wählen alle der zutreffenden Elemente. So dass hide() Funktion alle Elemente ausblenden. Es ist also nicht notwendig, die ausgewählten Elemente manuell mit each() oder anderen Dingen zu durchlaufen. hide() macht das automatisch für Sie.

Here is a live example.

7

Versuchen:

$(".ProductCode[value='hideme']").hide(); 

Siehe Attribute Equals Selector in der jQuery-Dokumentation für weitere Details.

+0

Wow, ich hätte das sehen sollen. Also bekomme ich den Fehler nicht mehr, aber ich bekomme auch nichts ausgewählt. Gibt es eine Liste der Attribute oder sind es speziell die HTML-Attribute, auf die sich jQuery bezieht? –

+0

Vielleicht könnten Sie etwas von dem HTML-Code posten, den Sie zu wählen versuchen ... –

+0

Danke Justin, ich habe es, der Raum warf mich auch ab. –

Verwandte Themen