0

问题描述

使用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>

这到底是怎么回事??

2019-04-17 提问
1 个回答
1

已采纳

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

 var opt = dst.createElement("option"); //改为
 var opt = document.createElement("option");

撰写答案

推广链接