jquery选择删除选项

时间:2011-09-11 00:11:11

标签: jquery

我目前正在使用此功能删除选项

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

有没有办法删除选项而不添加到选择器 - 如下所示?

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

THX

4 个答案:

答案 0 :(得分:13)

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

我相信是的。

或根据您的最新评论:

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

PS对于这么多编辑感到抱歉:(

答案 1 :(得分: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

答案 2 :(得分: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();
}

答案 3 :(得分:0)

你为什么要这样做?你可以做点什么

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

但是我不推荐它。使用第一个。这是完美而简单的