2013-05-17 7 views
17
//save tablet 
jQuery("#savetablet"+jTablets[i].idtablets).on('click', function() 
{ 
    alert("alertsepy2..."); 
    console.log(jTablets[i].idtablets); 
    jQuery("#tablet"+jTablets[i].idtablets+" .detailsrow").each(function(index) { 
     $(this).each(function(index2) { 
      console.log($(this).html()); 
     }); 
    }); 
}); 

<div class="column0"><input type="text" value="-D"></div> 
<div class="column1"><input type="text" value="D"></div> 
<div class="column2"><input type="text" value="D"></div> 
<div class="column3"><input type="number" value="0"></div> 
<div class="column4"> <input type="number" value="0"></div> 
<div class="column5"> <input type="number" value="0"></div> 
<div class="column6"><input type="number" value="0"></div> 
<div class="column7"><input type="number" value="0"></div> 
<div class="column8"><input type="number" value="0"></div> 
<div class="column9"> <input type="number" value="0"></div> 
<div class="column10"> <input type="number" value=""></div> 
<div id="tablet17row0" class="column11">11</div> 
<div class="column0"><input type="text" value="-D"></div> 
<div class="column1"><input type="text" value="D"></div> 
<div class="column2"><input type="text" value="D"></div> 
<div class="column3"><input type="number" value="0"></div> 
<div class="column4"> <input type="number" value="0"></div> 
<div class="column5"> <input type="number" value="0"></div> 
<div class="column6"><input type="number" value="0"></div> 
<div class="column7"><input type="number" value="0"></div> 
<div class="column8"><input type="number" value="0"></div> 
<div class="column9"> <input type="number" value="0"></div> 
<div class="column10"> <input type="number" value=""></div> 
<div id="tablet17row1" class="column11">21</div> 

Ho il jQuery .each() sopra riportato che emette l'HTML allegato alla console. In questo caso voglio estrarre il valore val() dei soli elementi di input sia di tipo text che type number. C'è un modo per isolare solo gli elementi di input in modo da poter ottenere i loro valori in un array?jQuery .each() con elementi di input

Grazie in anticipo ...

risposta

32

per estrarre il numero:

var arrNumber = new Array(); 
$('input[type=number]').each(function(){ 
    arrNumber.push($(this).val()); 
}) 

Per estrarre il testo:

var arrText= new Array(); 
$('input[type=text]').each(function(){ 
    arrText.push($(this).val()); 
}) 

Edit: .map implementazione

var arrText= $('input[type=text]').map(function(){ 
    return this.value; 
}).get(); 
3

Assumendo che tutti gli elementi di input siano all'interno di un modulo, è possibile fare riferimento al codice riportato di seguito.

// get all the inputs into an array. 

    var $inputs = $('#myForm :input'); 

    // not sure if you wanted this, but I thought I'd add it. 
    // get an associative array of just the values. 
    var values = {}; 
    $inputs.each(function() { 
     values[this.name] = $(this).val(); 
    });