2009-03-25 16 views
1

Ich versuche Elemente mit mehreren Bedingungen zu wählen, zum Beispiel ich folgende zur Zeit so mache:Multi-Conditional-Selektoren in jQuery

$('#myspan').find('input:visible').each(myfunc); 

Obwohl ich weiß, du Dinge wie $('#myspan input:visible') tun können, aber es hat nicht für mich gearbeitet. Ich muss nach Eingaben innerhalb der Spanne #myspan überprüfen, die sichtbar sind und sind überprüft. Irgendwelche Ideen?

Antwort

6

Versuchen:

$("#myspan :checked:visible").each(function() { 
    // do stuff 
}); 
+0

Gah, wenn ich nur mehrere richtige Antworten hätte;) Das ist auch gut. Wie kommt es, dass Sie die Eingabe weglassen? – Kezzer

+0

Sie können es einfügen, aber es wird impliziert durch: checked (da nur Checkboxen geprüft werden können und nur Eingaben Checkboxen sein können). Bis zu dir gedacht. Ich bevorzuge Terser-Ausdrücke, aber setze Input ein: checked: visible ist in Ordnung. – cletus

2
$('input:visible', '#myspan').find(':checked').each(function() { 
    alert(this.id); 
}); 

Sollte der Trick tun. Ich mag es, Dinge zu trennen, weil ich denke, dass es hilft, jQuery besser analysieren zu lassen.

+0

Dang sind Sie schnell. Vielen Dank! – Kezzer

+0

Es * ist * schneller, einen Kontext anzugeben. Ich weiß nicht warum, aber es scheint so zu sein. – Seb

+0

@Seb, das Warum ist ganz einfach: Ohne einen Kontext beginnt die Suche an der Wurzel des Dokuments;) –