将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
Appending same element to two dropdowns results in only the last being appended
我有以下代码;
function SetupDropdowns() {
var PrevType;
dropdown1 = document.getElementById("ddl1");
******************
for (var i = 0; i < Cars.length; i++) {
var myItem = Items[i];
if (PrevType != myItem.grouping) {
var seperator = document.createElement("option");
seperator.textContent = "----- " + myItem.grouping + " ------";
seperator.value = "";
seperator.disabled = true;
dropdown1.appendChild(seperator);
**********************
PrevType = myItem.grouping;
}
var NewOption = document.createElement("option");
NewOption.textContent = myItem.Name;
NewOption.value = myItem.SomeProperty;
dropdown1.appendChild(NewOption);
*********************
这非常有效;然而,一旦我添加了以下3行(在*位置),第一个下拉列表就不再附加到。
dropdown2 = document.getElementById("ddl2");
dropdown2.appendChild(seperator);
dropdown2.appendChild(NewOption);
添加这些行后,这些行仅附加到第二个选择,而不是第一个选择。
当然,这个新元素应该被附加到两个选项中,或者它只能被附加到一个选项中并且必须为第二个选择创建第二个元素?
NewOption
是一个元素。当元素被附加时,它被移动而不是被克隆。您应该创建两个选项或克隆第一个选项。现在的情况是将选项附加到第一个select元素,然后立即将其移动到第二个select元素中。
是的,您必须创建一个新元素或克隆该元素才能在DOM中添加两次。类似:
var NewOption_copy = NewOption.cloneNode(true);
dropdown2.appendChild(NewOption_copy);
相关文章:
- jQuery追加x元素的列表
- jquery追加元素位置始终为0
- 如何将动态追加元素的多个值存储到单个 var 中,然后检索到函数中
- 仅追加元素一次
- Masonry v3 在追加元素时是否仍然支持飞入过渡
- JQuery 复制/追加元素,删除了基本对象
- 追加元素,获取追加两次
- 追加元素AFTER加载
- 为什么在重新追加元素时单击事件不起作用
- jquery / 在达到最大追加数后自动删除追加元素
- D3只在元素不存在时追加元素
- 如何使用Jquery或Javascript瞄准追加元素,或者如何将追加元素添加到DOM中
- 在angular.js中通过作用域变量显示或追加元素
- 追加元素的最大数量
- 如何借助该事件处理程序创建的元素在事件处理程序之外动态追加元素?
- 如何多次追加元素(向下滑动)
- 使用$()追加元素的问题
- 如果有人在jquery或js中选择了一个特定的选项值,如何触发追加元素
- 当追加元素到
- 移除和追加元素后无法识别全局变量