【发布时间】:2020-11-26 15:56:30
【问题描述】:
大家好:快速提问:我的页面中有三个 Select 元素,我需要(最初)填充相同的选项。数据来自 AJAX 请求。
谁能告诉我为什么只有第一个 Select 附加了选项(尽管它在 .each() 中是最后一个),而其他的没有?这不是一个大问题,我可以通过其他方式解决它,但我只是想知道是否有人可以向我解释一下。
$(document).ready(function () {
var data = {test: "testing", test2: "testing2", test3: "testing3"}
let subscriptionSelect = $('#select1');
let showSelect = $('#select3');
let noShowSelect = $('#select4');
subscriptionSelect.empty().append($('<option></option>').val('').text('------'));
showSelect.empty().append($('<option></option>').val('').text('------'));
noShowSelect.empty().append($('<option></option>').val('').text('------'));
$.each(data, function (key, value) {
let option = new Option(key, value);
noShowSelect.append(option);
showSelect.append(option);
subscriptionSelect.append(option);
});
},
);
JSFiddle : https://jsfiddle.net/stuoq3f5/
【问题讨论】:
-
如果 new Option 创建一个 HTMLOptionElement,您可以将其附加到 1 个父节点。所以你必须复制它:
showSelect.append(option.cloneNode())等等
标签: javascript append options