Javascript 使用单个json字符串填充多个选择框
我通过ajax将字符串数据发送到页面。按以下格式Javascript 使用单个json字符串填充多个选择框,javascript,json,Javascript,Json,我通过ajax将字符串数据发送到页面。按以下格式 [{"servername":"svrA"},{"servername":"svrB"},{"servername":"svrC"},{"location":"locA"},{"location":"locB"},{"location":"locC"}] 我想用数据填充两个选择框 我尝试了以下伪代码的不同变体: for each item in the json string if obj == servername add to sel
[{"servername":"svrA"},{"servername":"svrB"},{"servername":"svrC"},{"location":"locA"},{"location":"locB"},{"location":"locC"}]
我想用数据填充两个选择框
我尝试了以下伪代码的不同变体:
for each item in the json string
if obj == servername
add to selectbox Server
if obj == location
add to selectbox Location
任何想法都将不胜感激。谢谢。var stuff=[{“服务器名”:“svrA”},{“服务器名”:“svrB”},{“服务器名”:“svrC”},{“位置”:“locA”},{“位置”:“locB”},{“位置”:“locC”}];
var stuff = [{"servername":"svrA"},{"servername":"svrB"},{"servername":"svrC"},{"location":"locA"},{"location":"locB"},{"location":"locC"}];
var elems = {
"servername": jQuery('#select-server'),
"location": jQuery('#select-location')
};
stuff.forEach(function(item){
for(var selectName in elems){
if(typeof item[selectName] != 'undefined'){
var val = item[selectName];
elems[selectName].append(jQuery('<option/>').val(val).html(val));
}
}
});
变量元素={
“服务器名”:jQuery(“#选择服务器”),
“位置”:jQuery(“#选择位置”)
};
stuff.forEach(功能(项目){
for(元素中的变量selectName){
如果(项目类型[selectName]!=“未定义”){
var val=项目[选择名称];
elems[selectName].append(jQuery(“”).val(val).html(val));
}
}
});
并不是说,
forEach
在较旧的浏览器上不可用。上面的代码只是供您使用的一个示例。有几种方法可以做到这一点,根据您的代码将来可能会如何发展,一些解决方案可能会比其他解决方案稍好或更灵活,但由于我不具备这方面的知识,下面是一个关于如何在vanilla JS中做到这一点的示例
var data = [
{"servername":"svrA"},
{"servername":"svrB"},
{"servername":"svrC"},
{"location":"locA"},
{"location":"locB"},
{"location":"locC"}
],
selects = {
servername: document.getElementById('servername'),
location: document.getElementById('location')
},
i = 0,
len = data.length,
item, prop, val;
for (; i < len; i++) {
prop = 'servername' in (item = data[i])? 'servername' : 'location';
val = item[prop];
selects[prop].add(new Option(val, val), null);
}
var数据=[
{“服务器名”:“svrA”},
{“servername”:“svrB”},
{“服务器名”:“svrC”},
{“位置”:“locA”},
{“位置”:“locB”},
{“位置”:“locC”}
],
选择={
servername:document.getElementById('servername'),
位置:document.getElementById('location')
},
i=0,
len=data.length,
项目、道具、val;
对于(;i
如果您计划对多个选择框使用相同类型的数据结构,则
选择引用选择
元素的对象而不是硬编码,您还可以使用中的动态提取selectid
,并使用通用方法解析select
引用。Hi-Trevor3.0,请发布您尝试过的代码的最后版本。首先,发布您的实际代码-伪代码根本没有帮助,其次,你需要说什么不起作用,而不是“任何想法都会受到赞赏”,我应该把它贴在哪里?只是我当前的问题?@Trevor3.0确实,请将请求的信息编辑到现有问题中