所以我有一个包含大量项目的列表:
<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将所有INPUT值都放入数组中。怎么办这样的事情?
答案 0 :(得分:7)
var vals = $("form input").map(function() {
return $(this).val();
});
或者(更干净)
var vals = [];
$("form input").each(function() {
vals.push( $(this).val() );
});
第二种选择更干净,因为它会留下一个普通的香草阵列。 map()
的结果仍然是是一个jQuery对象。由于这些(和行为完全一样)数组,这可能不是问题。但是要记住这种微妙的差异是有用的。
答案 1 :(得分: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
将包含其中的所有输入元素对象......
答案 2 :(得分:1)
并不总是可以在对象中存储所有参数(键和值),因为两个输入可以具有相同的名称。
但您可以使用:$('form.myform').serializeArray()
来获取[{param1:value2}, {param2: value2}]
或使用
$('form.myform').serializeArray().map(function(e){ return e.value;})
获取所有值的列表[value1, value2, ...]