2012-08-16 7 views
6

In JQuery, come posso ottenere l'elenco del tipo di input con nome, id e valore presente in qualsiasi div?Ottieni tutti i tipi di input con nome, ID, valore in JQuery

+0

Ozzone potresti pubblicare un frammento di HTML e quali elementi desideri selezionare da esso? –

+0

Elclanrs, per me questa domanda è perfettamente chiara. Se hai bisogno di chiarimenti, dovresti chiedere. Il tuo commento non è costruttivo perché non indica * perché * –

risposta

14

Seleziona gli input che discendono da un div che presenta sia gli attributi nome, ID e valore. Quindi spinge l'attributo "type" di ciascun elemento corrispondente in un array.

var inputTypes = []; 

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

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

+3

Questo è un OR, non un AND. –

+0

@AnthonyGrist Cosa intendi? – undefined

+3

@undefined Voglio dire che la domanda è chiedere input con un nome AND un id AND un valore, ma il codice nella risposta restituisce input con un nome O un id O un valore. –

2

Potete guardare ogni ingresso, ottenere i loro attributi e verificare contro una stringa vuota per ciascuno. È possibile utilizzare qualsiasi metodo che si desidera presentare, qui li sto solo aggiungendo ad un array.

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

Cosa succede se l'ID non è definito? 'undefined! ==" "' è vero, ma sicuramente non dovrebbe essere nella lista. –

+0

@AnthonyGrist ottimo punto, ho aggiornato la mia risposta per verificare un valore e che non sia vuota - fai riferimento a questo post SO: http://stackoverflow.com/questions/154059/what-is-the-best-way -per-check-in-un-stringa vuota-in-javaScript –

5

in jQuery, come posso ottenere l'elenco di tipo di ingresso ...

questo?

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

Il property!="" è necessaria non solo [property], questo è quello di filtrare le cose come

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

(che presumo non si vuole per ricevere input con qualsiasi proprietà è uguale a stringa vuota)

2

È possibile ottenere l'accesso per l'input da:

$('input') 

quindi ottenere gli attributi che si desidera, ad esempio, .attr('type'), .attr('id'). E se hai bisogno di elencarli in array è $('input').each(...);

Problemi correlati