我编写了这个小函数,用服务器上的数据填充下拉列表。
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"))
一切都很好,除了一行我从下拉列表中清除了旧数据。我做错了什么?
任何可能有助于改进此代码的提示也非常感谢。
4条答案
按热度按时间izj3ouym1#
Just use
.empty()
:There's also a more concise way to build up the options:
lymnna712#
我尝试了
.empty()
和.remove()
作为我的下拉菜单,两者都很慢。因为我有近4,000个选项在那里。我用的是
.html("")
,在我的条件下要快得多。下面是哪个
wn9m85ua3#
nhaq1z214#
将新的
options
存储在variable
中,然后使用.html(variable)
替换container
中的数据,如何?