获取特定div中所有类似id的div值

时间:2012-03-29 13:55:47

标签: javascript jquery

我有一个像下面这样的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>

现在如何在变量中添加所有隐藏的输入值。感谢

6 个答案:

答案 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 a​llVal​=​​​​​​​​[];
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