使用 JavaScript 数组填充下拉选择框
use a javascript array to fill up a drop down select box
我有一个文本文件,我正在读取并将数据存储在javascript数组中,它是一个美食列表。我想使用数组来填充下拉选择框。我知道如何在下拉框的值中进行硬编码(如果我错了,请使用纠正我),但我希望能够使用数组来填充它。
<script type="text/javascript">
var cuisines = ["Chinese","Indian"];
</script>
<select id="CusineList"></select>
为了简单起见,我硬编码了一个数组,"美食列表"是我的下拉框
使用 for
循环遍历数组。对于每个字符串,创建一个新的 option
元素,将该字符串指定为其innerHTML
并value
,然后将其追加到select
元素。
var cuisines = ["Chinese","Indian"];
var sel = document.getElementById('CuisineList');
for(var i = 0; i < cuisines.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = cuisines[i];
opt.value = cuisines[i];
sel.appendChild(opt);
}
演示
更新:使用createDocumentFragment
和forEach
如果要追加到文档的元素列表非常大,则单独追加每个新元素可能性能不佳。DocumentFragment
充当可用于收集元素的轻量级文档对象。一旦所有元素都准备就绪,您就可以执行单个appendChild
操作,以便 DOM 只更新一次,而不是n
次。
var cuisines = ["Chinese","Indian"];
var sel = document.getElementById('CuisineList');
var fragment = document.createDocumentFragment();
cuisines.forEach(function(cuisine, index) {
var opt = document.createElement('option');
opt.innerHTML = cuisine;
opt.value = cuisine;
fragment.appendChild(opt);
});
sel.appendChild(fragment);
演示
这是我最近写的REST-Service的一部分。
var select = $("#productSelect")
for (var prop in data) {
var option = document.createElement('option');
option.innerHTML = data[prop].ProduktName
option.value = data[prop].ProduktName;
select.append(option)
}
我发布这个的原因是因为 appendChild() 在我的情况下不起作用,所以我决定提出另一种也有效的可能性。
相关文章:
- 使用“自动选择”填充表单字段
- 使用Web服务根据对另一个下拉框的选择填充第二个下拉框以获取信息
- jqGrid基于先前的选择填充选择选项
- 根据先前的选择填充单个输入 - MYSQL PHP JS
- jQuery 根据第一个选择菜单中的值选择填充第二个选择菜单
- 根据第二个和第一个下拉列表选择填充第三个下拉列表
- Select2使用ajax和php基于第一个(多个)选择填充第二个字段
- PHP从下拉选择填充文本框
- 使.close选择填充来初始化脚本
- Coldfusion使用ajax(第2部分)通过下拉选择填充表单
- Coldfusion使用ajax通过下拉选择填充表单
- 如何基于第一个选择填充第二个选择菜单,基于第二个填充第三个选择菜单-使用Javascript
- 根据下拉选择填充文本字段
- 基于HTML下拉选择填充输入
- jQuery在选择填充其他字段时自动完成
- 根据另一个下拉列表中的选择填充下拉列表
- 根据html中的复选框选择填充文本框
- 根据一个下拉选择填充多个东西
- 使用AJAX根据选择填充表单字段
- Angular js在HTTP响应后选择填充列表