无法读取未定义的属性'undefined'?为什么会出现这个错误?

时间:2017-04-12 09:58:16

标签: javascript

var select = document.getElementById("source"); 
var select2= document.getElementById("status");
var option = ["1", "2", "3", "4", "5","6","7","8","9"];
var option2= [];

function moveright() {
    var a = source.options[source.selectedIndex].value;
    var option = document.createElement("option");
    option.text = a;
    select2.add(option);
    select.remove(i);
}

function moveleft() {
    var b = status.option2[status.selectedIndex].value;
    var option2 = document.createElement("option");
    option2.text = b;
    select.add(option2);
    select2.remove(i);
}

for(i = 0; i < option.length; i++) {
    var opt = option[i];
    var a = document.createElement("option");
    a.innerHTML = opt;
    a.value = opt;
    select.appendChild(a);
}

for(i = 0; i < option2.length; i++) {
    var opt2 = option2[i];
    var a = document.createElement("option");
    a.innerHTML = opt2;
    a.value = opt2;
    select2.appendChild(a);
}
<select id = "source" multiple size = "10" onclick = "moveright ()">
    <option>Choose a number</option>
</select>
<select id = "status" multiple size = "10" onclick = "moveleft ()">
    <option>Choose a number </option>
</select>

我是JavaScript新手我试图将下拉值从一个下拉到另一个下拉。第一次下拉工作正在进行,但第二次下拉工作无效。谁能帮我?我只在JavaScript数组中尝试过。

1 个答案:

答案 0 :(得分:0)

略有改变,但给你预期的结果;) 工作fiddle

moverightmoveright中,您有一个未定义的变量i。我假设你想使用选定的选项索引来删除它自己。

你应该编写完整的选择器来获取元素,而不是直接使用它的id。浏览器选择source个ID并作为html元素返回,但是status无法执行此操作,因为存在window.status这样的属性。