<select>使用jQuery从JavaScript对象添加选项的最佳方法是什么?
我正在寻找一些我不需要插件的东西,但我也会对那些插件感兴趣.
这就是我做的:
selectValues = { "1": "test 1", "2": "test 2" };
for (key in selectValues) {
if (typeof (selectValues[key] == 'string') {
$('#mySelect').append('<option value="' + key + '">' + selectValues[key] + '</option>');
}
}
Run Code Online (Sandbox Code Playgroud)
简洁明了的解决方案:
$.each(selectValues, function(key, value) {
$('#mySelect')
.append($('<option>', { value : key })
.text(value));
});
Run Code Online (Sandbox Code Playgroud)
来自matdumsa的更改:(1)删除了append()中选项的close标记,(2)将属性/属性移动到map中作为append()的第二个参数.
我想使用普通的javascript动态地为选择添加选项.我能找到的一切都涉及JQuery或尝试动态创建选择.我能找到的最接近的东西是动态添加输入类型select和Javascript中的选项,后者是后者,并且是我发现的唯一不涉及JQuery的选项.虽然我确实试过这样使用它:
daySelect = document.getElementById('daySelect');
daySelect.innerHTML += "<option'>Hello world</option'>";
alert(daySelect.innerHTML)
Run Code Online (Sandbox Code Playgroud)
在我这样做之后,选择没有变化,警报给了我
HELLO WORLD</option'>
Run Code Online (Sandbox Code Playgroud)
如果这很简单,我很抱歉,但我对javascript和网络编程很新.谢谢你的帮助.
编辑:所以我尝试了这样的建议.
daySelect = document.getElementById('daySelect');
myOption = document.createElement("option");
myOption.text = "Hello World";
myOption.value = "Hello World";
daySelect.appendChild(myOption);
Run Code Online (Sandbox Code Playgroud)
这根本没有改变页面中的选择.知道为什么吗?我确实检查了代码是否正在运行警报.
编辑:这个想法确实有效,它只是证明它没有在下拉列表中显示一个值.我不知道为什么,但我认为我可以想出那一个.
这似乎是一个标准的事情,但我很难找到一个清晰简单的解决方案.
我希望能够为已经初始化的Select2添加一个或多个附加选项.
我使用的是旧版本的Select2,但不确定版本是什么.
我有一个这样的列表:
<p>Please select :</p>
<script type="text/javascript"></script>
<select id='pre-selected-options1' multiple='multiple'>
<option value='elem_1' selected>1</option>
<option value='elem_2'>2</option>
<option value='elem_3'>nextoption</option>
<option value='elem_4' selected>option 1</option>
<option value='elem_100'>option 2</option>
</select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="js/jquery.multi-select.js"></script>
<script type="text/javascript">
$('#pre-selected-options1').multiSelect();
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
我有一个文本框,我需要将文本框值添加到此列表中。暂时我需要它就像每当页面重新加载输入的所有内容都被重置一样。稍后我将连接到数据库。
<label>Enter: </label>
<input type="text" name="" class="input-default"><button type="button" class="btn btn-success btn-sm m-b-10 m-l-5">Add</button>
Run Code Online (Sandbox Code Playgroud)
如何在单击按钮时将文本框中输入的值添加到此列表中?