1

我从服务器(php)得到这个列表:

["Ak-Bulak","Balykchy","Batken"]

我如何访问它并通过 js 输入选择选项,我尝试的是:

for (var i in data) {
   $('#cities').append('<option>'+ data[i] +'</option>');
}

它将每个字符作为一个选项:<option>[</option>, <option>"</option>...

我如何在这里访问每个元素?不是每个字符..

4

5 回答 5

3

如果它是您的 php 页面上的 var,则类似这样的东西会起作用

for (var i in <?php echo '["Ak-Bulak","Balykchy","Batken"]'; ?>) {
   $('#cities').append('<option>'+ i +'</option>');
}
于 2013-05-16T11:12:43.713 回答
2

似乎你没有列表,你有一个字符串。所以首先,解析那个字符串:

var list = JSON.parse('["Ak-Bulak","Balykchy","Batken"]')

然后,像你已经做的那样循环它,或者不使用键:

for (var i=0; i<list.length; i++) {
    $('#cities').append('<option>'+ data[i] +'</option>');
}
于 2013-05-16T11:11:55.720 回答
1

尝试这个,

    var data='["Ak-Bulak","Balykchy","Batken"]';
    data=JSON.parse(data);


for (var i in data) {
   $('#cities').append('<option>'+ data[i] +'</option>');
 }
于 2013-05-16T11:14:36.387 回答
1

您需要先将此字符串解析为 JSON。

var buffer = eval(data)
for (var i in buffer) {
    $('#cities').append('<option>'+ buffer[i] +'</option>');
}

但是如果你使用 eval() 你必须确保输入数据是一致的。更新。

于 2013-05-16T11:11:08.960 回答
0

关于什么:

var data=<?php echo '["Ak-Bulak","Balykchy","Batken"]'; ?>;

for (var i in data) {
   $('#cities').append('<option>'+ data[i] +'</option>');
}
于 2013-05-16T11:16:48.473 回答