2008-11-09 7 views
14

Ich habe diese Form:Mehrere Nachkommen mit jQuery auswählen?

<form name="customize"> 
    Only show results within 
     <select name="distance" id="slct_distance"> 
      <option>25</option> 
      <option>50</option> 
      <option>100</option> 
      <option value="10000" selected="selected">Any</option> 
    </select> miles of zip code 
    <input type="text" class="text" name="zip_code" id="txt_zip_code" /> 
    <span id="customize_validation_msg"></span> 
</form> 

Wie kann ich die input und select mit einem jQuery-Selektor wählen?

habe ich versucht, diese aber es ausgewählt alle der wählt und Eingaben auf der Seite:

$("form[name='customize'] select,input") 

Antwort

32

Das Komma in der Selektorzeichenfolge trennt vollständig separate Ausdrücke, genau wie in CSS, sodass der von Ihnen angegebene Selektor die ausgewählten Elemente im Formular namens "Anpassen" und alle Eingaben im Formular (wie beschrieben) erhält). Es klingt wie Sie so etwas wie dies wollen:

$("form[name='customize'] select, form[name='customize'] input") 

oder wenn Sie nicht in repitition sind, ist dieses:

$("form[name='customize']").children("select, input") 
+0

Ah ich verstehe. Vielen Dank! – Greg

+6

alternativ: $ ("select, input", "form [name = anpassen]") - der zweite Parameter ist das enthaltende Element. – Sugendran

0

Für mich Ihren Vorschlag gearbeitet. Sie könnten auch verwenden

form[name='customize'] select, form[name='customize'] input 

Beide Selektoren funktionieren, wie ich es sehe. Vielleicht liegt das Problem woanders?

Ich versuchte

$("form[name='customize'] select, input").css('font-size', '80px'); 

auf Ihrem Beispiel HTML. Die Schriftgröße für Auswahl und Eingabe wurde geändert.

--- edit ---

oben Mein Vorschlag ist, die richtige ist. Es wählt nur die Elemente im Anpassen-Formular aus.

+0

Das funktioniert, aber wählt alle Eingaben und wählt auf der Seite, wenn Sie also auf einer Seite mit nur diesem Formular testen, wird es funktionieren, aber nicht auf echten Seiten. Ich habe meine Frage geklärt. – Greg

6

Eine kürzere Syntax $ (Selektor, parentselector) ist ebenfalls möglich. Beispiel auf dieser Seite:

// all spans 
$("span").css("background-color","#ff0"); 

// spans below a post-text class 
$("span", ".post-text").css("background-color","#f00"); 

Bearbeiten - ich habe vergessen, den besonderen Fall von mehreren Arten von Kindern!