![](/img/trans.png)
[英]Create multidimensional javascript object from values in array using jquery .each loop
[英]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.