使用vanilla JavaScript选择和删除html选择选项而不通过索引或ID选择

时间:2015-06-23 08:45:13

标签: javascript function select options

我需要在选择框中删除一个选项,我在下面的代码中找到了一个潜在的解决方案,但它感觉不是特别'安全'(如果另一个开发人员决定在后端添加一个选项,该选项将重新出现)。有没有更好的方法来实现这一点而不诉诸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来找到通过值选择选项的方法。

3 个答案:

答案 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;
	}	
}