2010-05-24 13 views
10

Jest to najprostszy sposób na uzyskanie wszystkich elementów formularza zawartych w elemencie opakowania.jQuery - pobierz elementy formularza według identyfikatora kontenera

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

W powyższym kodzie HTML chciałbym wstawić element B i elementC, ale nie elementA. Nie chcę wyświetlać wszystkich typów elementów formularza (select, textarea, input, option ...). Wolałbym używać myForm.elements.

Wszelkie pomysły?

Odpowiedz

15

pomocą przełącznika :input pseudo jeśli nie chcesz, aby je wszystkie podać:

$('#wrapper :input'); 

:input wybiera wszystkie wejścia, textarea, przycisk Wybierz i elementy. I nie ma potrzeby używania tutaj .children().

+0

Naprawdę muszę spojrzeć na więcej pseudo selektorów. To dwa razy ktoś wymyślił lepsze rozwiązanie, bo nie znam ich wszystkich :) –

+0

Tak, to jest :), nie wiem dlaczego uważałem, że było to tylko dla elementów wejściowych ... takich jak: reset: radio .. –

+0

@ungarida: Ponieważ 'input' i': input' są tylko jeden znak inny, ale później obejmuje wszystkie typy kontroli formularza. – Powerlord

1

Jeśli nie ma nic oprócz elementów formularza w to

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

Jeśli będą inne rzeczy, jak również

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

co z '", który nie zostanie znaleziony – jigfox

+0

@Jens, to był dokładnie punkt. –

+0

Mówi "chciałbym element B i element c, ale nie elementA". Na początku poprosił o elementy formy w pojemniku. –

0

jQuery ('forma [name = myForm] div # wrapper').dzieci();

+0

Czy chcesz znaleźć elementA również. Wypróbuj kod tutaj nie powinien być –

0

Co

$(form)[0].elements 

I Know powyższy kod działa w Chrome. Nie testuj innych przeglądarek.

Powiązane problemy