javascript循环.children()项并保存到数组

时间:2014-12-25 10:35:42

标签: javascript arrays nodes children

我找不到任何适合我这个问题的解决方案,请原谅我复制。

我想浏览所有.children()项目,如果其中一些项目满足条件,我想将这些项目保存在一个数组中。这是代码,以准确显示我的意思:

    var items = [],
        allitems = $('.iconImg').children(),
        obj;


    // console.log(allitems);

    $('#next4').on('click', function(e){

        e.preventDefault();

        for(var i=0; i<allitems.length; i++){

            var currItem = $(allitems[i]).attr('id'),
                currItemPosLeft = parseInt($('#'+currItem).css('left')),
                itemOffset = getOffset('#'+currItem),
                items = [],
                arrToSend = [];

                // console.log(currItem, '=>', currItemPosLeft);    

            if(currItemPosLeft >= 405){

                obj = {

                    obId: currItem,
                    obPos: itemOffset

                }


                items.push(obj);
                console.log(items);

            }                   


        }

这段代码为我提供了满足条件的对象数组,但我想要的是一个存储这些对象的数组。

我该怎么做?

由于

2 个答案:

答案 0 :(得分:0)

好的,我解决了。我不确定为什么我这么复杂,这很容易。
所以,代码将是:

    var items = [],
    allitems = $('.iconImg').children().toArray(),
    obj;


    // console.log(allitems);

    $('#next4').on('click', function(e){

        e.preventDefault();

        $(allitems).each(function(i){

            var currItem = $(allitems[i]).attr('id'),
                currItemPosLeft = parseInt($('#'+currItem).css('left')),
                itemOffset = getOffset('#'+currItem);


            // console.log(currItem, '=>', currItemPosLeft);

            obj = {

                odId: currItem,
                obPos: itemOffset

            };

            if(currItemPosLeft >= 405){

                items.push(obj);

            }




        })

        console.log(items);


    })
    //end of #next4 click

答案 1 :(得分:0)

只是一个做事的演示;

var testData = [{id:1,data:'abc'},{id:2,data:'efg'},{id:3,data:'pqr'},{id:4,data:'xyz'}]

var res = []

testData.forEach(function(o){ 
       if(o.id % 2 == 0) { //your condition..
          res.push({nid:o.id, ndata: o.data}) 
       } 
});

DEMO:http://jsfiddle.net/dpst36xe/