这段简单的js代码怎么无法运行?

问题描述

使用var opt = document.createElement("option")时出错,然后无法添加节点!

问题出现的环境背景及自己尝试过哪些方法

我自己测试了,就是在创建节点时有问题,并阻断了for循环。

相关代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>二级联动</title>
    <script>
        var arr1 = new Array();
        arr1[0] = new Array("丰台","海淀","昌平","朝阳");
        arr1[1] = new Array("静安","虹桥");
        arr1[2] = new Array("天河区","白云","海珠");
        arr1[3] = new Array("罗湖","福田","南山","宝安");
        arr1[4] = new Array("西湖","滨江","余杭","萧山");

        function change(city) {
            var value = city.value;
            var dst = document.getElementById("districts");
            if (value=="-1") {
                dst.innerHTML="<option>请选择</option>";
                return;
            }

            dst.options.length=0;


            var arr2 = arr1[value];

            for (var i = 0;i < arr2.length;i++) {
                alert("start");
                var opt = dst.createElement("option");
                alert("1");
                opt.innerText=arr2[i];
                alert("2");
                dst.appendChild(opt);
            }
        }
    </script>
</head>
<body>
    <select onchange="change(this)">
        <option value=-1>请选择</option>
        <option value="0">北京</option>
        <option value="1">上海</option>
        <option value="2">广州</option>
        <option value="3">深圳</option>
        <option value="4">杭州</option>
    </select>

    <select id="districts">
        <option>请选择</option>
    </select>

</body>
</html>

这到底是怎么回事??

阅读 1.6k
1 个回答

你看下报错内容就知道了,dom节点对象没有createElement方法

 var opt = dst.createElement("option"); //改为
 var opt = document.createElement("option");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题