2011-09-11 266 views
4

我目前使用这个成功移除选项的jQuery选择删除选项

$("select#select_gender option[value='initial']").remove(); 

有没有办法删除选项,而不添加到选择 - 像下面?

$('select#select_gender').val('initial').remove(); 

THX

回答

12
$("select#select_gender option").filter("[value='initial']").remove(); 

我相信这样做。

或根据您的最新评论:

var sel = $("select#select_gender"); 
sel.find("option[value='initial']").remove(); 

PS对不起,这么多编辑:(

0

为什么你会怎么做呢?你可以这样做

$('select#select_gender').each(function(a,b){ 
    if ($(this).val() == 'initial'){ 
     $(this).remove(); 
    } 
}); 

我不建议这样做。使用第一个。这是完美和容易的

+0

我在变量中使用了很好的选择器,所以我想只引用变量名称,例如:variable。('option')。remove();不需要重新找到选择器...有兴趣看看是否有可能...我可能会保留原样... – Adam

1

我想你可以限制下来的选项标签

$("select#select_genter option").find("[value='initial']").remove() 

,然后diffenet vals

var beg_string = "[value='", 
    end_string = "']", 

while () { 
    /* loop through a list of values */ 
    $("select#select_genter option").find(beg_string + val + end_str).remove(); 
} 
2

你可以使用这样的事情:

$("#select_gender").children().filter(function(index, option) { 
    return option.value==="initial"; 
}).remove(); 

如果你愿意,你可以把它变成一个插件,像这样:

;(function($) { 
    $.fn.option=function(value) { 
     return this.children().filter(function(index, option) { 
      return option.value===value; 
     }); 
    }; 
})(jQuery); 

然后,你可以这样做:

$("#select_gender").option("initial").remove(); 

您可以演示它here