用JQuery清除下拉列表
我写了这个小函数来填充服务器数据的下拉列表。
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"))
除了我从下拉列表中清除旧数据的一行外,一切正常。 我究竟做错了什么?
任何可能有助于改善此代码的提示也非常感谢。
只需使用.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...
还有一个更简洁的方法来build立选项:
// snip... $(data).each(function () { $("<option />", { val: this.value, text: this.text }).appendTo(dropdown); });
我试了两个.empty()
以及.remove()
我的下拉列表,都很慢。 因为我有近4000个选项。
我使用了.html("")
,这在我的情况下要快得多。
下面是
$(dropdown).html("");
如何将新options
存储在variable
,然后使用.html(variable)
replacecontainer
的数据?
<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>