为什么总是只附加到最后一个元素
why always only append to last element?
下面是我的代码....
var BankDescriptions = data.GetResult.map(function(item) {
var Bank1 = document.getElementById("BTBank1");
var Bank2 = document.getElementById("BTBank2");
var Bank3 = document.getElementById("BTBank3");
var Bankopt = document.createElement('option');
Bankopt.value = item.BankNo;
Bankopt.innerHTML = item.BankName;
Bank1.appendChild(Bankopt);
BTBank2.appendChild(Bankopt);
BTBank3.appendChild(Bankopt);
});
data.GetResult
是一个 Object 数组,如下所示:
[{BankName: "test1", BankNo: "1"},{BankName: "test2", BankNo: "2"}]
在我的页面上,只有BTBank3正确附加了子项,为什么?
因为您一直传递相同的元素 3 次,所以该元素从一个父元素移动到另一个父元素。
每次都需要传递一个新实例,可以使用 cloneNode() 方法创建对象的克隆。
由于您需要 3 个实例,因此您可以克隆对象两次,然后将对象传递给第 3 次调用,例如
var data = {
GetResult: [{
BankName: "test1",
BankNo: "1"
}, {
BankName: "test2",
BankNo: "2"
}]
}
var Bank1 = document.getElementById("BTBank1");
var Bank2 = document.getElementById("BTBank2");
var Bank3 = document.getElementById("BTBank3");
var BankDescriptions = data.GetResult.forEach(function(item) {
var Bankopt = new Option(item.BankName, item.BankNo);
Bank1.appendChild(Bankopt.cloneNode(true));
Bank2.appendChild(Bankopt.cloneNode(true));
Bank3.appendChild(Bankopt);
});
<select id="BTBank1"></select>
<select id="BTBank2"></select>
<select id="BTBank3"></select>
相关文章:
- 表追加而不附加最后一个元素
- 如何查找流星集合中最后一个元素/对象的id
- 如何在使用Protractor测试时找到ng中继器的最后一个元素
- 在元素数组上循环只会影响最后一个元素
- 推特引导滚动间谍总是选择最后一个元素
- 选择页面上具有特定类的最后一个元素
- 检查 JQuery 每个函数中的最后一个元素
- 选择表中的最后一个元素
- forEach 仅执行数组的最后一个元素
- JavaScript,数组和函数 - 只有数组的最后一个元素有效
- jQuery - 选择具有相同 ID 的组的最后一个元素
- 第一个元素和最后一个元素之间的连续循环
- 在JavaScript数组中查找最后一个元素的计算效率最高的方法
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 如何在jquery中读取Section中的最后一个元素
- 设置'字体大小'jQuery不处理所选Text的最后一个元素
- AJAX只将数组的最后一个元素传递给MVC 5控制器
- 移除嵌套数组的最后一个元素,并完成最后一个数组
- PHP:获取关联数组中最后一个元素
- jquery slideDown()遍历最后一个元素