【问题标题】:create multidimensional array or object in jquery each loop在 jquery 每个循环中创建多维数组或对象
【发布时间】:2014-02-14 04:19:03
【问题描述】:

这就是我努力了好几个小时才得到的。如果我在每个循环中alert(i),它会给我1,2,3...,但如果我想用作多维数组的键,它就像一个字符串"i"

$(document).ready(function(){
    var positions=[];

    $( ".box" ).each(function(i) {
        //alert(i);
        var elPositions = {};
        elPositions.i = $(this).offset().top;
        positions.push(elPositions);
        //$elPosArray[i] = $(this).offset().top;
        //$(this).html('outer height--> ' + $(this).outerHeight(true));
    });
    console.log(positions);
    //console.log(el);
});

有关于这个主题的问题和答案,但没有一个能帮助我解决这个问题。

我想要一个数组或 obj 看起来像:

   positions[0]['offset'] = '120';
   positions[0]['height'] = '300';
   positions[1]['offset'] = '420';
   positions[1]['height'] = '180';
   positions[2]['offset'] = '600';
   positions[2]['height'] = '100';
   positions[3]['offset'] = '700';
   positions[3]['height'] = '300';

这里是一个 html http://jsfiddle.net/Z9WrG/ 的小提琴

【问题讨论】:

    标签: javascript jquery arrays multidimensional-array


    【解决方案1】:

    你几乎在那里!

    在您的循环中,elPositions(此处重命名为 data)在每次迭代中重新创建,然后使用连续索引推入数组中。无需在数据对象中指定i,因为i 会在您推入数组时自动分配。

    查看更新的小提琴:http://jsfiddle.net/Z9WrG/2/

    和代码:

    $(document).ready(function(){
        var positions=[];
    
        $( ".box" ).each(function() {
            var $this = $(this);
            var data = {};
    
            data.offset = $this.offset().top;
            data.height = $this.height();
    
            positions.push(data);
            // Now, positions[iteration_index] = { offset: x, height: y }
        });
    
        console.log(positions);
        console.log(positions[0].height);
        console.log(positions[0].offset);
    });
    

    【讨论】:

    • 我知道,我知道,我不应该在这里说谢谢。但是感谢 ZOUGEN :-) 太棒了,还告诉我我做错了什么!
    • @caramba - 在 cmets 中感谢某人的帮助并没有错 ;) 一般的立场是不要在你的问题末尾添加感谢,所以它尽可能清晰和简洁。
    • @Josh Harrison 非常感谢。
    猜你喜欢
    • 2016-10-24
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2018-07-05
    • 2011-05-28
    • 2014-10-25
    相关资源
    最近更新 更多