我编写了这个小函数,用来自服务器的数据填充下拉列表。
function fillDropDown(url, dropdown) {
$.ajax({
url: url,
dataType: "json"
}).done(function (data) {
// Clear drop down list
$(dropdown).find("option").remove(); <<<<<< Issue here
// Fill drop down list with new data
$(data).each(function () {
// Create option
var $option = $("<option />");
// Add value and text to option
$option.attr("value", this.value).text(this.text);
// Add option to drop down list
$(dropdown).append($option);
});
});
}
然后,我可以这样调用该函数:
fillDropDown("/someurl/getdata", $("#dropdownbox1"))
一切都运行得很好,除了我正在从下拉列表中清除旧数据的那一行。我做错了什么?
任何可能有助于改进此代码的技巧也将受到高度赞赏。
发布于 2012-03-28 22:13:30
只需使用.empty()
即可
// snip...
}).done(function (data) {
// Clear drop down list
$(dropdown).empty(); // <<<<<< No more issue here
// Fill drop down list with new data
$(data).each(function () {
// snip...
还可以使用a more concise way来构建选项:
// snip...
$(data).each(function () {
$("<option />", {
val: this.value,
text: this.text
}).appendTo(dropdown);
});
发布于 2013-11-16 18:57:15
我在我的下拉菜单中尝试了.empty()
和.remove()
,它们都很慢。因为我有将近4000个选择。
我使用的是.html("")
,它在我的情况下要快得多。
下面是哪个
$(dropdown).html("");
发布于 2016-03-03 13:01:28
<select id="ddlvalue" name="ddlvaluename">
<option value='0' disabled selected>Select Value</option>
<option value='1' >Value 1</option>
<option value='2' >Value 2</option>
</select>
<input type="submit" id="btn_submit" value="click me"/>
<script>
$('#btn_submit').on('click',function(){
$('#ddlvalue').val(0);
});
</script>
https://stackoverflow.com/questions/9909326
复制相似问题