如何使用jQuery从列表中获取值(没有项ID)?

时间:2011-04-10 16:40:55

标签: javascript jquery html arrays html-lists

所以我有一个包含大量项目的列表:

<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值都放入数组中。怎么办这样的事情?

3 个答案:

答案 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, ...]