【发布时间】:2014-03-06 17:36:59
【问题描述】:
我需要使用 jQuery 创建一个复杂的级联下拉列表。这就是问题所在。 我有几个州及其各自的县。第一个下拉列表将显示州,第二个将仅显示所选州的县。我已经使用这些链接(以及我现在不记得的另一个)找到了它:
How to populate a cascading Dropdown with JQuery
Three dimensional Javascript array
现在的问题是我需要向数组添加另一个维度。我有州、县和县代码。
我打算使用类似的东西:
var states = [];
states.push({ name:"AL", counties: [] });
states.push({ name:"AK", counties: [] });
states[0].counties.push({ name:"Autauga", code: [1] });
states[0].counties.push({ name:"Baldwin", code: [3] });
states[1].counties.push({ name:"Aleutian Islands", code: [10] });
states[1].counties.push({ name:"Anchorage", code: [20] });
states[1].counties.push({ name:"Bethel", code: [50] });
function populateDropdown(drop, items) {
drop.empty();
for(var i = 0; i < items.length; i++) {
drop.append('<option value=' + i + '>' + items[i].name + '</option>');
}
drop.show();}
populateDropdown( $('#state'), states);
$('#state').change(function () {
var stateIndex = $(this).val();
var state = states[stateIndex];
populateDropdown($('#county'), state.counties);
});
或者这个版本(我认为这样的代码会更容易阅读)
var states = new Array();
states[0]="AL|Autauga|1";
states[0]="AL|Baldwin|3";
states[1]="AK|Aleutian Islands|10";
states[1]="AK|Anchorage|20";
states[1]="AK|Bethel|50";
然后以某种方式使用 .split("|") 将它们分开。同样,州-县关系使用第一个版本起作用。我需要能够提取所选县的代码以在其他地方使用它,可能用于另一个下拉列表。对于你们中的一些人来说,这可能看起来是一个简单的问题,但我只是在学习 JS。
谢谢!
【问题讨论】:
标签: jquery arrays multidimensional-array