更改动态添加的选择选项

时间:2019-05-09 20:32:06

标签: javascript jquery

我正在处理以下代码。当我以编程方式更改选择时,如何在动态添加的选择选项上进行更改?

$(document).ready(function() {
  setTimeout(function() {
    $("div").append('<select id="color"><option value="khaki">Khaki</option> <option value="green">Green</option> <option value="gold">Gold</option><option value="red">Red</option> </select>');
  }, 4000);

  setTimeout(function() {
    $("#color option:eq(2)").attr("selected", "selected");
  }, 6000);
  
  $('#color').on('change', function() {
    $('body').css('background', this.value);
  });
  
});
body {
  padding: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>

1 个答案:

答案 0 :(得分:1)

  1. 使用委托来处理change事件。
  2. 以编程方式触发事件。

$(document).ready(function() {
  setTimeout(function() {
    $("div").append('<select id="color"><option value="khaki">Khaki</option> <option value="green">Green</option> <option value="gold">Gold</option><option value="red">Red</option> </select>');
  }, 4000);

  setTimeout(function() {
    $("#color option:eq(2)").attr("selected", "selected")
    .change();
  }, 6000);
  
  $('body').on('change','#color', function() {
    $('body').css('background', this.value);
  });
  
});
body {
  padding: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>