2011-04-10 65 views
0

所以我有很多的項目類似下面的列表:如何使用jQuery從列表(不包含項目ID)獲取值?

<ul id="usersList"> 
    <li><FORM><INPUT class="eButton" type="button" value="robot669394444" onClick="openWin('robot669394444',1280,720)"></FORM></li> 
    <li><FORM><INPUT class="eButton" type="button" value="robot6693925" onClick="openWin('robot6693925',1280,720)"></FORM></li> 
</ul> 

我想使用jQuery到陣列中的所有輸入值。如何做這樣的事情?

回答

7
var vals = $("form input").map(function() { 
    return $(this).val(); 
}); 

可選地(更乾淨)

var vals = []; 
$("form input").each(function() { 
    vals.push($(this).val()); 
}); 

第二種選擇是更乾淨,因爲它留給你一個普通的陣列。 map()仍然的結果是一個jQuery對象。由於這些(和行爲完全相同)數組,這可能不是問題。但考慮到這種微妙的差異是很有用的。

1

我不知道的方式使用jQuery做,但使用簡單的JavaScript可以幫助

var uL=document.getElementById("usersList"); 
var i=0; 
var inArr=new Array(); 
while(uL.getElementsByTagName("FORM")[i]){ 

    inArr.push(uL.getElementsByTagName("FORM")[i].getElementsByTagName('input')[0]); 
    alert(inArr[i].value); 
    i++; 

} 

inArr將包含所有在它的輸入元素對象...

1

它並不總是可能將所有參數(鍵和值)存儲在一個對象中,因爲兩個輸入可以具有相同的名稱。

但是你可以用:$('form.myform').serializeArray()獲取對象像[{param1:value2}, {param2: value2}]

或者使用 $('form.myform').serializeArray().map(function(e){ return e.value;}) 來獲取所有值的列表[value1, value2, ...]

相關問題