2010-05-24 13 views
10

¿Cuál es la forma más fácil de obtener todos los elementos de formulario que están contenidos en un elemento contenedor?jQuery - obtener elementos de formulario por identificador de contenedor

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

En el HTML anterior, yo incluiría elementB y elementC pero no elementA. No quiero enumerar todos los tipos de elementos de formulario (select, textarea, input, option ...). Preferiría usar myForm.elements.

¿Alguna idea?

Respuesta

15

Uso del selector de :input seudo si no desea especificar todos ellos:

$('#wrapper :input'); 

:input selecciona todos los elementos de entrada, área de texto, seleccionar y botones. Y no hay necesidad de usar .children() aquí.

+0

Realmente necesito ver más de los pseudo selectores. Es dos veces que alguien ha encontrado una mejor solución porque no los conozco a todos :) –

+0

Sí, lo es :), no sé por qué creía que era solo para elementos de entrada ... como: reiniciar: radio ... –

+0

@ungarida: Porque 'input' y': input' son solo un carácter diferente, pero el último incluye todos los tipos de control de formulario. – Powerlord

1

Si no hay más que elementos de la forma en que

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

si va a haber otras cosas, así

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

¿qué pasa con '' que no se encontrará – jigfox

+0

@Jens, ese era exactamente el punto. –

+0

Él dice "Yo haría elementB y elementc pero no elementA". Al principio, pidió elementos de forma dentro del contenedor. –

0

jQuery ('forma [nombre = myform] div # envoltorio').niños();

+0

¿quieres encontrar elementA también? Pruebe el código aquí no debería ser –

0

¿Qué hay de

$(form)[0].elements 

I Know por encima de código funciona en Chrome. No probar otros navegadores.

Cuestiones relacionadas