Javascript 使用JQuery清除dropdownlist
我编写这个小函数是为了用来自服务器的数据填充下拉列表Javascript 使用JQuery清除dropdownlist,javascript,jquery,Javascript,Jquery,我编写这个小函数是为了用来自服务器的数据填充下拉列表 function fillDropDown(url, dropdown) { $.ajax({ url: url, dataType: "json" }).done(function (data) { // Clear drop down list $(dropdown).find("option").remove(); <<<<<&
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);
});
});
}
除了我正在从下拉列表中清除旧数据的那一行之外,一切都很正常。我做错了什么
任何可能有助于改进此代码的提示都将受到高度赞赏。只需使用:
//剪断。。。
}).完成(功能(数据){
//清除下拉列表
$(下拉).empty();//将新的选项存储在变量中,然后使用.html(variable)
替换容器中的数据如何?我尝试了.empty()
和.remove()
我的下拉列表,两个都很慢。因为我有将近4000个选项
我使用了.html(“”
,在我的情况下,这要快得多。
下面是哪个
$(dropdown).html("");
选择值
值1
价值2
$('btn_submit')。在('click',function()上{
$('#ddlvalue').val(0);
});
BTW,这将非常适合作为jQuery插件,只需进行一些重构。对我来说,数据不是DOM列表,而是javascript数组,所以取而代之的是$(数据).each(函数()…
->$。each(数据,函数()我必须利用<代码>值> />代码> <代码>文本< /代码> 4000个选项对于用户可操作的网页可能太多。许多浏览器甚至会出现问题。请考虑分页列表或自动完成/建议。
// 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...
// snip...
$(data).each(function () {
$("<option />", {
val: this.value,
text: this.text
}).appendTo(dropdown);
});
$(dropdown).html("");
<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>