如何从动态创建的JSON元素中获取值。以下示例。我想知道是否有办法使用一些javascript从前一个元素'top'获取值。 (如果标题不正确或具有误导性,请更新标题)
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
},
]
答案 0 :(得分:1)
我想知道是否有办法使用一些javascript
从前一个元素'top'获取值
info
是一个数组,所以你需要做的就是索引它然后访问prop
对象,即
var prevTop = info[someIndex].pos.top;
答案 1 :(得分:1)
没有简单的语法可以从Javascript中的数组文字中获取前一个元素的值。你必须通过索引来引用它,如下所示:
pos: {
top: info[0].pos.top + value
left: 70
},
答案 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
。
答案 3 :(得分:0)
尝试此功能:
function DoOffset(data, offset)
{
for (var i = 1; i < data.length; i++)
{
data[i].pos.top = data[i - 1].pos.top + offset;
}
}
答案 4 :(得分:0)
您可以遍历info数组以更改值:
for(var i = 1, len = info.length; i < len; i++) {
info[i].pos.top = info[i - 1].pos.top + newValue;
}