我需要在选择框中删除一个选项,我在下面的代码中找到了一个潜在的解决方案,但它感觉不是特别'安全'(如果另一个开发人员决定在后端添加一个选项,该选项将重新出现)。有没有更好的方法来实现这一点而不诉诸jQuery?
(function (){
var parent = document.getElementById("MediaCategory");
var child = parent.children[8];
if(parent.options[8].text === "Archive") {
parent.removeChild(child);
}
})();
正如我所看到的,我正在选择select表单元素的ID并将其存储在变量中,我还存储了select的第9个子节点,这是我想要删除的选项。
然后为了额外的安全性,我坚持使用if语句来仔细检查我选择的选项是否具有正确的文本。
有什么简单的我想念我可以添加吗?我无法通过搜索网络,仅通过类名或ID来找到通过值选择选项的方法。
答案 0 :(得分:1)
这样的东西?
(function (){
var parent = document.getElementById("MediaCategory");
for(var i=0; i< parent.children.length; i++){
var child = parent.children[i];
if(child.text === "Archive") {
parent.removeChild(child);
}
}
})();
答案 1 :(得分:0)
我会遍历所有选项,并在找到它时删除该选项。 break语句将在找到要删除的选项后停止循环。
.messages-active.messages-remove.messages,
.messages-remove.messages { max-height: 0px; }
答案 2 :(得分:0)
var parent = document.getElementById("MediaCategory");
for (var i=0; i<parent.options.length;i++) {
if (parent.options[i].text == 'Archive') {
parent.remove(i);
break;
}
}