2012-08-16 13 views
6

En JQuery, ¿cómo puedo obtener la lista de tipo de entrada con nombre, id y valor presente en cualquier div?Obtenga todos los tipos de entrada con nombre, id, valor en JQuery

+0

Ozzone podría publicar un fragmento de HTML y qué elementos desea seleccionar de él? –

+0

Elclanrs, para mí esta pregunta es perfectamente clara. Si necesita una aclaración, debe preguntar. Su comentario no es constructivo porque no indica * why * –

Respuesta

14

Selecciona entradas que descienden de un div que tiene atributos de nombre, id y valor presentes. A continuación, empuja el atributo "tipo" de cada elemento coincidente en una matriz.

var inputTypes = []; 

$('div input[name][id][value]').each(function(){ 
    inputTypes.push($(this).attr('type')); 
}); 

http://api.jquery.com/multiple-attribute-selector/

+3

Eso es un O, no un AND. –

+0

@AnthonyGrist ¿Qué quieres decir? – undefined

+3

@undefined Me refiero a que la pregunta es pidiendo entradas con un nombre Y una identificación Y un valor, pero el código en la respuesta devuelve entradas con un nombre O una identificación O un valor. –

2

Usted puede mirar en cada entrada, obtener sus atributos y comprobar contra una cadena vacía para cada uno. Puede usar cualquier método que desee para presentarlos, aquí solo los agrego a una matriz.

var inputs = new Array(); 

$("input").each(function() { 
    var name = $(this).attr("name"); 
    var id = $(this).attr("id"); 
    var val = $(this).val(); 

    if ((name) && name !== "") && ((id) && id !== "") && ((val) && val !== "")) { 
     inputs.push(this); 
    } 
}); 
+1

¿Qué pasa si la identificación no está definida? 'undefined! ==" "' es cierto, pero definitivamente no debería estar en la lista. –

+0

@AnthonyGrist muy buen punto, he actualizado mi respuesta para verificar el valor y que no está vacía - consulte esta publicación SO: http://stackoverflow.com/questions/154059/what-is-the-best-way -to-check-for-an-empty-string-in-javascript –

5

En jQuery, ¿Cómo puedo obtener la lista de tipo de entrada ...

Este?

var inputTypes = []; 
$('input[name!=""][value!=""][id!=""]').each(function() { 
    inputTypes.push($(this).prop('type')); 
}); 

El property!="" es necesario que sólo [property], esto es filtrar las cosas como

<input type="text" name="something" value="" id="someId" />

(que supongo que usted no desea conseguir de entrada con cualquier propiedad es igual a la cadena vacía)

2

Usted puede obtener acceso para la entrada por:

$('input') 

luego obtenga los atributos que desee, por ejemplo, .attr('type'), .attr('id'). Y si necesita una lista, escríbalos en el array es $('input').each(...);

Cuestiones relacionadas