清空select中的option的问题

使用$("select").html("")来清空一个动态生成的下拉框

当下拉选项只有一个的时候,清空操作结束后,代码清空了但是下拉框依旧显示选择项
如图所示
再点击一下下拉框选择项才消失
图片描述

当有多个下拉选项的时候则不会出现这种情况

写了一个简易的代码

<!DOCTYPE html>
<html>

<head>
    <title></title>
    <style>
        button {
            width: 50px;
            height: 20px;
        }
    </style>
    <script src="https://code.jquery.com/jquery-1.11.3.js"></script>
</head>

<body>
    <select></select>
    <button>按钮</button>
    <script>
    var accountHtml = "",
        account = ["1234123421"];

    account.forEach(function(i) {
        accountHtml += '<option value="' + i + '">' + i + '</option>';
    });
    $("select").html(accountHtml);

    $("button").on("click", function() {
        $("select").html("");
    });
    </script>
</body>

</html>

想请教一下如何解决

阅读 6.3k
1 个回答

理论上不会出现~
$("select").html("").val("");
试一下这个.

或者既然都清空了, 可以直接remove掉, 在生成一个也可以.

下面代码我测试一下清空select没问题~

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="jquery.min.js"></script>
</head>
<body>
  <select name="" id="select"></select>
  <button class="dianwo">dianwo</button>
  <script>
    $(function(){
      $("select").append("<option value='123'>123</option><option value='456'>456</option><option value='789'>789</option>");

      $(".dianwo").click(function(){
        $("select").html("");
      })
    });
  </script>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题