[英]How to replace options in a Select2 select box
我正在嘗試動態清除Select2選項列表,並使用新數據重新加載它。 我讀到的所有內容都告訴我,我可以設置數據,就像我正在做的那樣,但它只會附加數據,而不會清除它。
$("#optioner").select2(); $("#doit").click(function() { $("#optioner").select2({ data: [{ id: "real1", text: "Real 1" }, { id: "real2", text: "Real 2" }] }); });
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet" /> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script> <h1>Demo</h1> <select id="optioner" class="select2"> <option value="fake1">Fake 1</option> <option value="fake2">Fake 2</option> </select> <input id="doit" type="button" value="Real It Up">
我把它搞砸了。
在使用data
選項添加選項之前,Select2沒有提供完全清除選項的方法,因為它已經可以使用jQuery .empty()
函數完成。
$("#optioner").empty()
.select2({ data: /* ... */ });
來自問題#3877 :
這是
data
選項的預期行為。 當使用data
初始化Select2時,它會將數據對象數組轉換為可以使用的<option>
元素。因此,當您重新初始化它時,它會創建第二組
<option>
元素。如果沒有,我如何重新填充Select2的選項/數據列表?
您可以通過在原始選擇上調用.empty()來清除現有選項。
$("select").empty();
請注意,這將重置任何現有選擇
$("#optioner").select2(); $("#doit").click(function() { var $elem = $("#optioner"); $elem.empty() .select2({ data: [{ id: "real1", text: "Real 1" }, { id: "real2", text: "Real 2" }] }); });
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet" /> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script> <h1>Demo</h1> <select id="optioner" class="select2"> <option value="fake1">Fake 1</option> <option value="fake2">Fake 2</option> </select> <input id="doit" type="button" value="Real It Up">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.