jquery - 为什么选项拒绝附加到选择元素?

标签 jquery

我试图将一个选项附加到单击按钮时触发的函数中的选择元素,但它不起作用。我究竟做错了什么?看起来该元素几乎不存在,因为即使 empty()不起作用。但如果我检查它是否存在并显示警报,它会返回该元素确实存在。这是我的代码。

function Add(ID) {
  var text = "";
  if (ID == "1") {
    text = "January";
  } else
  if (ID == "2") {
    text = "February"
  } else
  if (ID == "3") {
    text = "March";
  }
  $("#Month").append($("<option></option>").val(ID).html(text));
}
Add(1);
Add(3);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="Month"></select>

最佳答案

您应该将 ID == "1" 更改为 ID == 1。因为您传递的是数字而不是字符或字符串。

Add(1);
Add(3);

function Add(ID) {
        var text = "";
        if (ID == 1) {
            text = "January";
        }
        else if (ID == 2) {
            text = "February"
        }else if (ID == 3){
            text = "March";
        }
        $("#Month").append($("<option></option>").val(ID).html(text));
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="Month">
  <option>--Please select--</option>
</select>

重构代码

var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
Add(1);
Add(3);

Add(0);
Add(13);
function Add(ID) {
        if(ID <= 0 || ID >= 13){
          console.log("ID: " + ID + " must in range 1 - 12");
          return;
        }
        $("#Month").append($("<option></option>").val(ID).html(months[ID - 1]));
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="Month">
  <option>--Please select--</option>
</select>

关于jquery - 为什么选项拒绝附加到选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60312080/

相关文章:

javascript - map jquery上的整个页面刷新

jquery - 未选择文件时如何使按钮变灰

jquery - 远程设置自动完成的来源

jquery - AJAX - 检索多个数据

javascript - 如何添加下一个和上一个按钮 --- Turn.js

javascript - 如何降低 div onclick 的高度?

javascript - 无法使用 jquery 更新隐藏的复选框名称属性

jquery 测试 - 暂停 DOM?

jquery - 使用最接近焦点的最接近文本框

javascript - 当我点击按钮时,函数不会被调用