总而言之,我想从SELECT输入中删除任何和所有空选项。 select是根据其接收的对象从其他人编写的脚本动态生成的。我的问题是有时候对象有空值,留给我一个选择选项集,留下一些需要的东西。
无论如何,几乎每次集合中的第一个选项都是空的。所以我想删除它并将selected="selected"
应用于删除第一个选项后出现的第一个选项。同时删除任何其他具有空值的可能性。
因此,在测试初步概念时,我想出了
$(select).each(function(){
if ($(this+' option:selected').val() == '')
{
//this assumes that your empty value is ''
$(this).remove();
}
});
似乎删除了整个select,我知道它的原因this
被定义为select本身。
我也试过了
$(select +'option[value=""]').remove();
目前我只是试图让它删除带有空值的选项,在我能够实现之后,我将弄清楚如何正式选择列表中的第一项,就DOM而言。
还值得一提的是'select'传递的变量先前在函数中定义,因此它适用于该部分概念。只是说,所以没有人认为我有点混淆别的东西。
答案 0 :(得分:16)
代码:
$('select option')
.filter(function() {
return !this.value || $.trim(this.value).length == 0;
})
.remove();
$('select option')
.first()
.prop('selected', true);
答案 1 :(得分:10)
这可以更轻松地完成:
Element.find('option[value=""]').remove();
答案 2 :(得分:0)
function fixSelectOptions(SelectId){
var sel = document.getElementById(SelectId);
for(var i = 0; i < sel.options.length; i++){
if(sel.options[i].value === ""){
sel.remove(i--);//decrease i to preserve future index references after removal
}
}
sel.options.selectedIndex = 0;
}