admin管理员组文章数量:1287849
I have a JSON string (from php json_encode) that looks like;
var json = [{"Foo":[{"id":1,"name":"aaa"},{"id":2,"name":"bbb"}]},{"Bar":[{"id":3,"name":"ccc"},{"id":4,"name":"ddd"}]}];
I want to be able to create an html select using Javascript/jQuery in the form;
<select>
<optgroup label="Foo">
<option value="1">aaa</option>
<option value="2">bbb</option>
</optgroup>
<optgroup label="Bar">
<option value="3">ccc</option>
<option value="4">ddd</option>
</optgroup>
</select>
In terms of processing the json I get this far (not far I know), but jsFiddle fails to run it and freezes my browser.
var json = [{"Foo":[{"id":1,"name":"aaa"},{"id":2,"name":"bbb"}]},{"Bar":[{"id":3,"name":"ccc"},{"id":4,"name":"ddd"}]}];
$.each(json, function(i,group) {
console.log(i);
$.each(group, function(j, option) {
console.log(j, option);
$.each(option, function(k, item) {
console.log(k, item);
});
});
});
I have a JSON string (from php json_encode) that looks like;
var json = [{"Foo":[{"id":1,"name":"aaa"},{"id":2,"name":"bbb"}]},{"Bar":[{"id":3,"name":"ccc"},{"id":4,"name":"ddd"}]}];
I want to be able to create an html select using Javascript/jQuery in the form;
<select>
<optgroup label="Foo">
<option value="1">aaa</option>
<option value="2">bbb</option>
</optgroup>
<optgroup label="Bar">
<option value="3">ccc</option>
<option value="4">ddd</option>
</optgroup>
</select>
In terms of processing the json I get this far (not far I know), but jsFiddle fails to run it and freezes my browser.
var json = [{"Foo":[{"id":1,"name":"aaa"},{"id":2,"name":"bbb"}]},{"Bar":[{"id":3,"name":"ccc"},{"id":4,"name":"ddd"}]}];
$.each(json, function(i,group) {
console.log(i);
$.each(group, function(j, option) {
console.log(j, option);
$.each(option, function(k, item) {
console.log(k, item);
});
});
});
Share
Improve this question
edited Dec 21, 2012 at 21:54
Jon Adams
25.1k18 gold badges84 silver badges121 bronze badges
asked Dec 19, 2012 at 16:21
RooneylRooneyl
7,9026 gold badges56 silver badges82 bronze badges
2
- 5 Set your fiddle to use jQuery instead of MooTools, and it seems to run just fine jsfiddle/DVKMK/1 – Michael Berkowski Commented Dec 19, 2012 at 16:24
- He is trying to dynamically create the <selects>, his JS doesn't do that. – webnoob Commented Dec 19, 2012 at 16:56
1 Answer
Reset to default 9This should run just fine.
var $select = $("<select>");
$select.appendTo("#somewhere");
$.each(json, function(i, optgroups) {
$.each(optgroups, function(groupName, options) {
var $optgroup = $("<optgroup>", {label: groupName});
$optgroup.appendTo($select);
$.each(options, function(j, option) {
var $option = $("<option>", {text: option.name, value: option.id});
$option.appendTo($optgroup);
});
});
});
本文标签: javascriptCreate html select with optgroup from jsonStack Overflow
版权声明:本文标题:javascript - Create html select with optgroup from json - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741319803a2372138.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论