2011-09-23 60 views
1

我有一個div屬於同一個類的集合,而 有表單域。我希望能夠遍歷同一個類的div的 並獲取隱藏的表單元素並存儲在數組中。每次迭代 但我想我在哪裏犯錯後添加到一個數組在jquery中遍歷同一個類的元素

我已創建和數組對象是通過div的 迭代這裏是

<div class="parent_div"> 
    <div class="child_div" id="child_div_1" number="1"> 
     <div class="some_other_div"> 
     </div> 
     <input id="name_1" type=hidden value="1.0"/> 
     <input id="name_2" type=hidden value="4.0"/> 
    </div> 
    <div class="child_div" id="child_div_2" number="2"> 
     <div class="some_other_div"> 
     </div> 
     <input id="name_2_1" type=hidden value="1.0"/> 
     <input id="name_2_2" type=hidden value="4.0"/> 
    </div> 
    <div class="child_div" id="child_div_3" number="3"> 
     <div class="some_other_div"> 
     </div> 
     <input id="name_3_1" type=hidden value="1.0"/> 
     <input id="name_3_2" type=hidden value="4.0"/> 
    </div> 
</div>//end of parent div 

我寫的結構下面的jQuery代碼來遍歷這些div,但我只是不知道我做錯了什麼。所以請幫助!

function doSomething() { 
    var array = {}; 
    var rowCount = $("div .child_div").length; 
    var rowNumber = 0; 
    for (i=0; i <= rowCount; i++) { 
     //doing something... 
     array[i] = arrayObj (val1,val2,val3,val4,val5,val6); 
    } 
} 
+0

線'VAR陣列= {};'是創建一個對象,而不是陣列。試試'var array = [];'來代替。 – Blazemonger

回答

4
var values = []; 
$(".child_div").each(function() { 
    $(this).find("input:hidden").each(function() { 
     values.push($(this).val()); 
    }); 
}); 

而且你可能會得到所有的輸入並將其映射:

var values = $('.child_div input:hidden').map(function (index, el) { return $(el).val(); }).get(); 
+0

感謝您的回覆,這真的很有幫助 –

0

如果你只是希望所有的隱藏的輸入是div的與類「child_div」內的一個數組,你可以這樣做:

var array = $('.child_div input:hidden').get(); 

編輯: ...或者,如果您想在創建陣列時執行更復雜的邏輯,那麼$().map()可能會有用。例如,

var values = $('.child_div input:hidden').map(function(i, el) { 
    // return the value of each hidden input 
    return $(this).val(); 
}).get(); 
0
$('div .child_div').each(function(i){ 
    // do something 
}); 
0

可以使用each()方法做循環。

var $items = $('.myClassName'); 

var myArray = new Array(); 


    $items.each(function(){ 
     var $hiddenItems = $(this).find('input:hidden'); 
     $hiddenItems.each(function(){myArray.push($(this))}); 
    }); 

Working example