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 数组中尝试过。
略有变化,但为您提供预期的结果;)工作小提琴
在你的moveright
和moveright
中,你有一个未定义的变量i
。我假设您想使用选定的选项索引来删除自身。
你应该编写完整的选择器来获取元素,而不是直接使用它的id。浏览器拾取source
id 并作为 html 元素返回,但是它不能用 status
做到这一点,因为有 window.status
这样的属性。