2010-03-08 10 views
113

HTML:Come ottenere tutti gli ingressi figlio di un elemento div (jQuery)

<div id="panel"> 
    <table> 
    <tr> 
     <td><input id="Search_NazovProjektu" type="text" value="" /></td> 
    </tr> 
    <tr> 
     <td><input id="Search_Popis" type="text" value="" /></td> 
    </tr> 
    </table> 
</div> 

ho bisogno di selezionare tutti gli ingressi nel particolare div.

Questo non sta funzionando:

var i = $("#panel > :input"); 

risposta

226

utilizzarlo senza il maggiore di:

$("#panel :input"); 

Il > significa che solo diretti figli dell'elemento, se si desidera che tutti i bambini, non importa la profondità basta usare uno spazio.

+3

Interessante ... Ora sono confusa ... Il ':' è per pseudo-classi, non è vero? Ma vogliamo selezionare un tipo di elemento. Perché il ':'? – mnemosyn

+11

@mnemosyn - Questo è un altro tipo di selettore come ': checkbox 'è, vedi qui per i dettagli: http://api.jquery.com/input-selector/ Ed ecco un elenco più completo di questi: http: // api .jquery.com/category/selectors/form-selectors/ –

+0

Grazie Nick, non ne era a conoscenza. Risolto il problema con la mia risposta – mnemosyn

58

È necessario

var i = $("#panel input"); 

o, a seconda di cosa esattamente si vuole (vedi sotto)

var i = $("#panel :input"); 

il > si limitano ai bambini, si desidera che tutti i discendenti.

EDIT: Come ha fatto notare Nick, c'è una sottile differenza tra $("#panel input") e $("#panel :input).

Il primo sarà solo recuperare elementi di ingresso di tipo, che è <input type="...">, ma non <textarea>, <button> e <select> elementi. Grazie Nick, non lo sapevo e ho corretto il mio post di conseguenza. A sinistra entrambe le opzioni, perché credo che il PO non era a conoscenza di che o e -technically- chiesto per gli ingressi ... :-)

+0

Quindi,: l'input selezionerà tutti i campi di input/select/textarea? Tutto in una volta? – Yuri

+0

In sostanza, sì. Il selettore restituisce una serie di corrispondenze, quindi suppongo che tu possa dire che lo fa 'subito', anche se non sono perfettamente sicuro di cosa intendi per quello ... – mnemosyn

+1

Voglio dire, "tutti insieme" con solo quel selettore. ": selettore di input Descrizione: Seleziona tutti gli elementi di input, textarea, select e button." Non lo sapevo, lo userò d'ora in poi :) – Yuri

8
var i = $("#panel input"); 

dovrebbe funzionare :-)

il> servirà solo a prendere bambini diretti, senza figli
il: è per l'utilizzo di pseudo-classi, ad es. : Hover, ecc

si può leggere su disponibili su CSS selettori di pseudo-classi: qui http://docs.jquery.com/DOM/Traversing/Selectors#CSS_Selectors

+6

@henchman - ': input' è anche un selettore, http://api.jquery.com/category/selectors/form-selectors/ Se aveva un '