2012-03-29 67 views
1

similiar ID的所有DIV值我有一個div結構像下面獲取特定的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

「在一個變量」?你能舉一個例子結果嗎? – Ryan 2012-03-29 13:56:41

+0

這是唯一的例子 – manishjangir 2012-03-29 13:57:27

+0

使用任何客戶端?你有你的代碼嗎? – 2012-03-29 13:57:47

回答

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); 
}); 
​ 
+0

關於地圖的快速問題,將它用於選擇器和每個選擇器(在此示例中)有什麼好處? (明顯少了一些代碼,但速度更快?) – Magrangs 2012-03-29 14:01:38

+0

@Magrangs'map'爲您提供集合作爲結果值,而對於'each',您必須在每個回調之外初始化集合並添加到其中遍歷元素。 – Yoshi 2012-03-29 14:04:59

+0

加上yoshi的評論,map是返回新的數組,每個都是返回相同的數組。所以在這種情況下需要創建新的數組,所以它說你使用地圖。較少的代碼是另一個好處。 查看更多詳情http://stackoverflow.com/questions/749084/jquery-map-vs-each – 2012-03-29 14:05:55

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); 
} 
+0

你的代碼不起作用,這是你的小提琴http://jsfiddle.net/sK4Nt/,檢查我的答案。 – 2012-03-29 14:40:00

+0

@SheikhHeera這就是答案:[undefined,「12」,undefined,「12」,undefined]。現在,「12」代表答案。不要爭論編輯代碼+) – 2012-03-29 14:42:11

+0

OP只需要來自隱藏輸入的值。 – 2012-03-29 14:44:23

3
var total = 0; 

$('#main input[id^="people_"]').each(function(){ 
    total += parseInt(this.value, 10); 
}); 

注意,我我正在使用屬性從選擇器開始,以查找其ID爲開始的所有輸入元素。

total會給你所有輸入元素值的總和。

+0

+1:這是滿足所有要求的唯一答案。 – 2012-03-29 14:01:53

+0

@manishjangir - 這是你在找什麼? – ShankarSangoli 2012-03-29 14:08:21

+0

一個建議 - 我會編輯答案並將'#main' div添加到選擇器。 – 2012-03-29 14:10:35

0

你可以嘗試這樣的事:

var peopleData = $("#main input[type=hidden]").serializeArray(); 
0

把值的變量是沒有意義的。您可以在一個陣列插入值,並執行所需的操作

+0

你不能添加數字,並把總和在一個變量? – 2012-03-29 14:00:45

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