2013-12-22 189 views
-1

如何從動態創建的JSON元素中獲取值。下面的例子。我想知道是否有辦法從以前的元素'頂部'使用一些JavaScript的價值。 (如果請更新標題的不正確或誤導)從javascript中獲取JSON變量的值

Following this example on jsfiddle

var info = [ 
{ 
    src: "http://dummyimage.com/55x80/0d0.png/fff", 
    pos: { 
    top: 93, 
    left: 70 
    }, 
    rotate: -10, 
    zIndex: 3 
}, 
{ 
    src: "http://dummyimage.com/55x80/d00.png/fff", 
    pos: { 
    top: previousElement(top) + some dynamic value added at run time, 
    left: 70 
    }, 
    rotate: 0, 
zIndex: 2 
}, 
] 

回答

1

我不會這樣做,您可以根據索引計算它。

但是......如果你堅持:

假設你的陣列是一個JS文字(而不是JSON,這是不同的),你可以使用一個簡單的計數器。

使用事實賦值返回所分配的值(這是種醜陋雖然):

var top = 93; 
var info = [ 
{ 
    src: "http://dummyimage.com/55x80/0d0.png/fff", 
    pos: { 
    top: top, 
    left: 70 
    }, 
    rotate: -10, 
    zIndex: 3 
}, 
{ 
    src: "http://dummyimage.com/55x80/d00.png/fff", 
    pos: { 
    top: top = top + (some dynamic value added at run time), 
    left: 70 
    }, 
    rotate: 0, 
zIndex: 2 
}   //... keep doing top = top + sometDynamicValue on all elements 
] 

甲多種分離的示例可能是:

var c = 0,  
    arr = [ 
     {a:c = c + 5}, 
     {a:c = c + 5}, 
     {a:c = c + 5}, 
     {a:c = c + 5}, 
     {a:c = c + 5}, 
    ] 

其與創建對象的數組增加5 a財產。

+0

你有一個很好的JavaScript的書基於這個問題建議我問? –

+0

@java_dude如果你已經知道另一種編程語言,那麼道格拉斯克羅克福德的「好的部分」是堅實的,否則John Resig(jQuery名人堂)在可汗學院有一個很好的系列講座,你可以開始:) –

1

我想知道是否有辦法使用一些JavaScript

擺脫前一個元素「頂」的值

info是一個數組,因此您需要做的就是索引它,然後訪問prop對象,即

var prevTop = info[someIndex].pos.top; 
1

沒有簡單的語法從Javascript中的數組字面值中的前一個元素獲取值。您必須通過索引來引用它,如下所示:

pos: { 
    top: info[0].pos.top + value 
    left: 70 
}, 
0

試試這個功能:

function DoOffset(data, offset) 
{ 
    for (var i = 1; i < data.length; i++) 
    { 
     data[i].pos.top = data[i - 1].pos.top + offset; 
    } 
} 
0

您可以遍歷信息陣列,以改變值:

for(var i = 1, len = info.length; i < len; i++) { 
    info[i].pos.top = info[i - 1].pos.top + newValue; 
}