在jquery中迭代同一个类的元素

时间:2011-09-23 13:01:17

标签: jquery

我有一个div的集合属于同一个类和 有表格领域。我希望能够遍历div 同一个类,获取隐藏的表单元素并存储在数组中。

我已创建并在每次迭代后添加到数组的数组对象 但我认为我错在哪里是通过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);
    }
}

4 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

如果你只想要一个包含“child_div”类的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();

答案 2 :(得分:0)

$('div .child_div').each(function(i){
   // do something
});

答案 3 :(得分: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