Javascript 包含Json数据的下拉框
我试图使用jquery用以下JSON数据填充下拉框Javascript 包含Json数据的下拉框,javascript,jquery,html,json,drop-down-menu,Javascript,Jquery,Html,Json,Drop Down Menu,我试图使用jquery用以下JSON数据填充下拉框 { "Name":["A","B","C"], "Movie":["X","Y","Z"] } 这就是我到目前为止所做的脚本 $("#firstbox").change(function(){ var $selection=$(this); $.getJSON("data.json",function(data){ var i=$selection.val(); var
{
"Name":["A","B","C"],
"Movie":["X","Y","Z"]
}
这就是我到目前为止所做的脚本
$("#firstbox").change(function(){
var $selection=$(this);
$.getJSON("data.json",function(data){
var i=$selection.val();
var arr=[];
switch(i){
case 'Name':
arr=data.Name.split(",");
break;
case 'Movie':
arr=data.Movie.split(",");
break;
}
});
});
我的基本index.html就是这样
<select id="firstbox">
<option selected value="">---Select---</option>
<option value="Name">Name</option>
<option value="Movie">Movie</option>
</select>
<select id="secondbox" name="">
<option selected value="">---Generate---</option>
<script src="myjs.js"> </script>
</select>
---选择--
名称
电影
---产生---
“secondbox”下拉列表应生成与“firstbox”下拉列表选择相对应的值。我收到的错误是“未定义拆分函数”。谁能给我一个提示吗
感谢
拆分
是字符串
对象的一种方法,这里您可以在数组
对象上使用它。
您不需要拆分,因为名称和电影键是JSON对象中的allready数组
$("#firstbox").on("change", function(e){
var sel=$(this).val();
$("#secondbox").empty();
$.getJSON("data.json",function(data){
var values=data[sel] || ['Error : key not found'];
$(values).each(function(index,element) {
$("<option />", {value: element, text:element}).appendTo("#secondbox");
});
});
});
$(“#firstbox”)。关于(“更改”,函数(e){
var sel=$(this.val();
$(“#secondbox”).empty();
$.getJSON(“data.json”),函数(数据){
变量值=数据[sel]| |['错误:找不到键'];
$(值)。每个(函数(索引、元素){
$(“”,{value:element,text:element});
});
});
});
下面是一个工作示例:$(“#firstbox”)。关于(“更改”,函数(e){
writeOptions();
}
函数getJSONData(firstboxval){
//进行ajax调用以获取第二个下拉列表的数据
//对应于在firstbox中选择的值
//然后使函数返回选项数组
}
函数writeOptions(){
var firstboxval=$(“#firstbox”).val();
var optionValues=getJSONData(firstboxval);
var dropDown=document.getElementById(“secondbox”);
对于(var i=0;i
$("#firstbox").on("change", function(e){
writeOptions();
}
function getJSONData(firstboxval) {
//make ajax call to get data for second dropdown
//that corresponds to the value selected in firstbox
//then make function return the array of options
}
function writeOptions() {
var firstboxval = $("#firstbox").val();
var optionValues = getJSONData(firstboxval);
var dropDown = document.getElementById("secondbox");
for(var i=0; i<optionValues.length; i++) {
var key = i;
var value = optionValues[i];
dropDown.options[i] = new Option(value, key);
}
}