我有一个带有增量编号的选择框列表,以便识别,例如
<select id="my-select-0">
<option value="1">first option</option>
<option value="2">first option</option>
< option value="3">first option</option>
</select>
<select id="my-select-1">
<option value="1">first option</option>
<option value="2">first option</option>
<option value="3">first option</option>
</select>
<select id="my-select-2">
<option value="1">first option</option>
<option value="2">first option</option>
<option value="3">first option</option>
</select>
我有一个json字符串,我想用它来预先填充这些选项,例如。
json = "[{'my-select': 1},
{'my-select': 3}]";
上面示例中的 my-select-0
将设置为1,my-select-1
设置为3。
我将如何在JQuery中执行此操作?
由于
答案 0 :(得分:3)
我不确定完全您所追求的是什么,但是如果您将JSON更改为valid(双引号),则可以使用$.parseJSON()
执行此操作循环,像这样:
var json = '[{"my-select": 1}, {"my-select": 3}]';
var selects = $("[id^=my-select]"); //a class maybe? not sure of your options
$.each($.parseJSON(json), function(i, v) {
selects.eq(i).val(v['my-select']);
});
You can see a working demo here
更新:由于您可以控制在页面中呈现它的方式,只需删除它所包含的初始引号,如下所示:
var json = [{'my-select': 1}, {'my-select': 3}];
var selects = $("[id^=my-select]");
$.each(json, function(i, v) {
selects.eq(i).val(v['my-select']);
});
You can see it working here,JSON就是它的名字所说的,对象符号 ...所以只需使用它,不要使它成为字符串,只需直接输出/声明它作为一个javascript对象...在这种情况下,它是一个可以循环的数组,当然没有额外的工作就会更快。