0

我有两个包含不同项目的下拉列表。如果我在 dropdownlist1 中选择一个项目,则该选定项目应该添加到 dropdownlist2 中并且应该被选中。使用下面的 javascript 代码,我可以在 dropdownlist2 中添加该项目,但它没有被选中。请让我知道如何自动选择新添加的项目。

var domName = document.getElementById("dropdownlist1");
var domSelectedText = domName.options[domName.selectedIndex].text;
var domSelectedValue = domName.options[domName.selectedIndex].value;
var opt = document.createElement("option");
opt.text = domSelectedText;
opt.value = domSelectedValue;
document.getElementById("dropdownlist2").options.add(opt);
4

5 回答 5

4

我认为您只需要多一行就可以将新添加的项目标记为选中。

opt.selected = true;
于 2013-05-07T05:19:18.617 回答
1

您可以将代码缩减为:

var domName = document.getElementById("dropdownlist1"),
selectedOption = domName.options[domName.selectedIndex].cloneNode(true);

document.getElementById("dropdownlist2").appendChild(selectedOption);

演示

于 2013-05-07T06:10:34.097 回答
1

你让生活变得比它需要的更困难。考虑克隆节点而不是复制它:

var domName = document.getElementById("dropdownlist1");

if (domName.selectedIndex >= 0) {
  var opt = domName.options[domName.selectedIndex].cloneNode(true);
  opt.selected = true;
  document.getElementById("dropdownlist2").appendChild(opt);
}
于 2013-05-07T06:11:23.460 回答
0

尝试

var opt = new Option(domSelectedText, domSelectedValue)
Array.prototype.push.call(document.getElementById("dropdownlist2").options, opt)
于 2013-05-07T05:18:07.440 回答
0
var domName = document.getElementById("dropdownlist1");
var domSelectedText = domName.options[domName.selectedIndex].text;
var domSelectedValue = domName.options[domName.selectedIndex].value;
var sel2 = document.getElementById("dropdownlist2");
sel2.options[sel2.options.length]=new Option(domSelectedText,domSelectedValue)
sel2.selectedIndex = sel2.options.length-1;
于 2013-05-07T05:18:30.913 回答