我试图将一个选项附加到单击按钮时触发的函数中的选择元素,但它不起作用。我究竟做错了什么?看起来该元素几乎不存在,因为即使 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/