Javascript 如何创建动态下拉菜单

Javascript 如何创建动态下拉菜单,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我不知道如何连接代码, 大家好,我是HTML和Javascript新手。我正在尝试创建动态下拉菜单,如所提供的网站所示。我下载了源代码,它工作得很好,但我的主要问题是如何从XML页面获得下拉选项,而不是硬编码。我想创建一些类似于乡村-州-镇的东西,所以如果我选择美国,它将成为仅适用于美国的选项,等等。在上面的代码中,它拆分字符串,使值位于第一位,标签位于第二位。有没有可能有人能帮助我,我正在努力帮助我的哥哥。使用AJAX来完成这项工作的特定方法是什么?如果可以的话,我只能像上面的代码那样使用Ja

我不知道如何连接代码,
大家好,我是HTML和Javascript新手。我正在尝试创建动态下拉菜单,如所提供的网站所示。我下载了源代码,它工作得很好,但我的主要问题是如何从XML页面获得下拉选项,而不是硬编码。我想创建一些类似于乡村-州-镇的东西,所以如果我选择美国,它将成为仅适用于美国的选项,等等。在上面的代码中,它拆分字符串,使值位于第一位,标签位于第二位。有没有可能有人能帮助我,我正在努力帮助我的哥哥。使用AJAX来完成这项工作的特定方法是什么?如果可以的话,我只能像上面的代码那样使用Javascript吗?谢谢

确实可以使用AJAX获取数据,但是您必须稍微更改代码。您可以这样做:


jsFiddle用于OP发布的代码:这看起来不错,但是否可以从XML页面获取信息?我试图创建一个表单,人们可以在不查看代码的情况下更新下拉列表,我想知道是否可以创建一个表单来更新XML页面,然后XML页面更新下拉菜单,如Country-state-city,因为我试图创建Country-state-city示例so 3分层,谢谢你advanced@user3773023-您可以使用XMLHttpRequest从XML页面获取数据。然后您可以循环遍历节点,类似于我这里的代码,并将选项附加到表单中。我在这里使用JSON是因为它更容易使用。我为所有这些问题道歉,只是我想了解很多,但是我应该在哪里指定XMLHttpRequest,以及如何从表单编辑XML,您是否可以提供另一个代码示例?我仍然不明白怎么做,但我理解概念部分。另外,Ajax是通过XML完成country state city下拉列表的唯一方法吗?还是有一种更简单的方法,因为在服务器上创建一个表单来修改XMLs是一个完全不同的主题。它需要处理一些服务器端的东西。关于第二个问题,AJAX是唯一的解决方法。最流行的两种数据类型是JSON和XML,最容易处理的类型是。因此,关于通过XMLHttpRequest从XML获取输入的主题,我所要做的就是使用它从XML获取数据,然后使用上面提供的代码?提前谢谢
//Assuming this is the object returned via AJAX
var ajaxResult = {
    Chevy: ["|", "camaro|Camaro", "corvette|Corvette", "impala|Impala"],
    Dodge: ["|", "avenger|Avenger", "challenger|Challenger", "charger|Charger"],
    Ford: ["|", "mustang|Mustang", "shelby|Shelby"],
    SomeMore: ["|", "more|More", "options|Options"]
};

function init() {
    document.getElementById("slct1").options.add(
        document.createElement("option")
    );
    for (var names in ajaxResult) {
        var option = document.createElement("option");
        option.value = names;
        option.innerHTML = names;
        document.getElementById("slct1").options.add(option);
    }
}

function populate(s1, s2) {
    var s1 = document.getElementById(s1);
    var s2 = document.getElementById(s2);
    s2.innerHTML = "";
    var optionArray = ajaxResult[s1.value];
    for (var option in optionArray) {
        var pair = optionArray[option].split("|");
        var newOption = document.createElement("option");
        newOption.value = pair[0];
        newOption.innerHTML = pair[1];
        s2.options.add(newOption);
    }
}

init();  //Call this when you have the object from AJAX