2010-05-24 6 views
10

Quale è il modo più semplice per ottenere tutti gli elementi del modulo contenuti da un elemento wrapper.jQuery - recupera gli elementi del modulo per ID contenitore

<form name="myForm"> 
    <input name="elementA" /> 
    <div id="wrapper"> 
    <input name="elementB" /> 
    <textarea name="elementC" /> 
    </div> 
</form> 

Nell'elemento HTML precedente vorrei elemento B e elementoC ma non elementoA. Non voglio elencare tutti i tipi di elementi del modulo (selezionare, textarea, input, opzione ...). Preferirei usare myForm.elements.

Qualche idea?

risposta

15

utilizzare il selettore :input pseudo se non si desidera specificare tutti:

$('#wrapper :input'); 

:input seleziona tutti gli elementi di input, textarea, selezionare e pulsante. E non c'è bisogno di usare .children() qui.

+0

Ho davvero bisogno di guardare più dei pseudo selettori. Per due volte qualcuno ha trovato una soluzione migliore perché non li conosco tutti :) –

+0

Sì, lo è :), non so perché ho creduto che fosse solo per gli elementi di input ... come: reset: radio .. –

+0

@ungarida: Poiché 'input' e': input' sono solo un carattere diverso, ma il successivo include tutti i tipi di controllo del modulo. – Powerlord

1

Se non ci sono altro che elementi dei moduli in esso

$('#wrapper').children(); 

Se non ci stanno per essere altre cose così

$('#wrapper').children('input, select, textarea'); 
+0

cosa dire '' che non verrà trovato – jigfox

+0

@Jens, questo era esattamente il punto. –

+0

Dice "Vorrei elementB e elementc ma non elementA". All'inizio ha chiesto elementi del modulo all'interno del contenitore. –

0

jQuery ('forma [name = myform] div # wrapper').bambini();

+0

vuoi trovare anche l'elemento A. Prova il codice qui non dovrebbe essere –

0

Che dire

$(form)[0].elements 

I Know sopra codice funziona in Chrome. Non testare altri browser.