簡體   English   中英

在每個循環的jquery中創建多維數組或對象

[英]create multidimensional array or object in jquery each loop

這就是我所得到的並且已經持續數小時了。 如果我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/的小提琴

你快到了!

在循環中, 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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM