簡體   English   中英

使用jQuery動態更改選擇列表后選擇選項

[英]Choosing options after dynamically changing a select list with jQuery

我已經能夠刪除並替換html選擇列表中的所有選項(使用jQuery),但是我無法從列表中進行選擇。 該問題似乎與“ on('click')”事件有關,但我不確定為什么。 有人可以幫忙嗎?

 $(document).on('click', '#selectId', function() { var option1 = $('<option></option>').attr("value", "option value").text("Text 1"); var option2 = $('<option></option>').attr("value", "option value").text("Text 2"); $("#selectId").children().remove().end().append(option1).append(option2); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <body> <div> <select name="name" id="selectId"> <option>--- select ---</option> <option>1</option> <option>2</option> </select> </div> </body> 

每次單擊select元素時,都將銷毀子代並將其替換為兩個選項。 您可以從列表中進行選擇,但是由於您第二次單擊,因此該列表再次被銷毀,並替換為兩個全新的相同子代,默認情況下,第一個被選中。 您可以替換

$(document).on('click', '#selectId', function() {

$(document).ready(function() {

因此更改僅在頁面加載時發生,或者在替換選項重新考慮您的邏輯(例如,不要在每次單擊都這樣做)

如果必須動態完成初始化,則可以將“ on”替換為“ one”(請參見此處 ),例如

$(document).one('click', '#selectId', function() {
    var option1 = $('<option></option>').attr("value", "option value").text("Text 1");
    var option2 = $('<option></option>').attr("value", "option value").text("Text 2");
    $("#selectId").children().remove().end().append(option1).append(option2);
});

這應該觸發事件處理程序不超過一次。

而不是單擊使用更改事件處理程序

$(document).on('change', '#selectId', function() {
    var option1 = $('<option></option>').attr("value", "option value").text("Text 1");
    var option2 = $('<option></option>').attr("value", "option value").text("Text 2");
    $("#selectId").children().remove().end().append(option1).append(option2);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM