我有一个像下面这样的div结构
<div id=main">
<input type="hidden" id="people_0_1_0" value="12"/>
<input type="hidden" id="people_0_1_1" value="12"/>
</div>
现在如何在变量中添加所有隐藏的输入值。感谢
答案 0 :(得分:5)
使用Jquery的map
函数
var myArray = $('#main input').map(function(){
return $(this).val();
}).get();
它将收集所有输入的值(在这种情况下为12和12)到数组变量。
请参阅jsfiddle http://jsfiddle.net/GkXUS/1/
如果您想获得值的总和,可以执行以下操作
var total = 0;
$.each(myArray,function() {
total += parseInt(this,10);
});
答案 1 :(得分:3)
var total = 0;
$('#main input[id^="people_"]').each(function(){
total += parseInt(this.value, 10);
});
请注意,我使用属性starts with selector来查找id以people_
开头的所有输入元素。
total
将为您提供所有输入元素值的总和。
答案 2 :(得分:0)
我想你想要这个:
var hidden_value = new Array();
var hiddens = document.getElementById( "main" ).childNodes;
for( i = 0 ; i < hiddens.length ; i++ ){
hidden_value.push( hiddens[ i ].value );
}
答案 3 :(得分:0)
您可以尝试这样的事情:
var peopleData = $("#main input[type=hidden]").serializeArray();
答案 4 :(得分:0)
将值放在变量中没有意义。您可以在数组中插入值并执行所需的操作
答案 5 :(得分:0)
使用普通Javascript
var els=document.getElementById('main').childNodes;
var allVal=[];
for(i=0; i<els.length-1; i++)
{
if(els[i].nodeType != 3 && els[i].type=="hidden") allVal.push(els[i].value);
}
console.log(allVal); // the array
console.log(allVal[0]); // first value
一个例子是here。