使用带有JSON对象/数组元素的for循环?

时间:2011-10-15 02:50:07

标签: javascript jquery

我正在尝试使用已经解码的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

非常感谢任何帮助!

2 个答案:

答案 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]

你应该没有问题