我正在尝试使用已经解码的JSON数据创建一个for()
循环,问题是将我的循环变量(在本例中为i
)添加到我的元素的末尾在引用。
例如,我的JSON结构,转储:
{
"url": "http://www.example.com",
"rid": 1,
"rname": "Apple iPhone 4 Rotation",
"rmin": 90,
"rmax": 150,
"blank": 0,
"geo_country_0": "GB",
"geo_url_0": "http://en",
"geo_country_1": "FR",
"geo_url_1": "http://fr",
"geo_country_2": "ES",
"geo_url_2": "http://es"
}
在geo_country_
和geo_url_
的情况下,我需要附加一个数字,在本例中是循环变量。
我的实际for循环,以便更好地理解:
for(i = 1; i < count; i++) {
$('#geo-location').append('<div id="glt_' + i + '" class="clone"><select name="g_country['+i+']" class="glt-input-c">' + options + '</select><input type="text" name="g_url[' + i + ']" class="glt-input-c" value="' + data.geo_url_i+ '"/></div>');
$('select[name="g_country['+i+']"').find('option[value="' + data.geo_country_i+ '"]').attr('selected','selected');
}
到目前为止,我已经尝试过:
i
[i]
。\i
一样逃避它。 (这可能是一个愚蠢的想法)。+
,+ data.geo_country + i +
。我需要做些什么才能正确解释i
?
非常感谢任何帮助!
答案 0 :(得分:2)
在JavaScript中,您可以通过两种方式处理对象的属性:
var value = myobject.myproperty;
var value2 = myobject['myproperty'];
使用这些知识,您可以按如下方式重写代码:
for(i = 1; i < count; i++) {
$('#geo-location').append('<div id="glt_' + i + '" class="clone"><select name="g_country['+i+']" class="glt-input-c">' + options + '</select><input type="text" name="g_url[' + i + ']" class="glt-input-c" value="' + data['geo_url_' + i] + '"/></div>');
$('select[name="g_country['+i+']"').find('option[value="' + data['geo_country_' + i] + '"]').attr('selected','selected');
}
答案 1 :(得分:1)
像
一样访问它data['geo_country_' + i]
你应该没有问题