jQuery从选择中删除选项


221

我有一个包含5个选择的页面,所有选择都有一个类名'ct'。我需要在运行onclick事件时从每个选择中删除值为“ X”的选项。我的代码是:

$(".ct").each(function() {
    $(this).find('X').remove();
   });

我要去哪里错了?


运作良好: $('select').children('option[value="X"]').remove();
刘镇玱

Answers:


451

试试这个:

$(".ct option[value='X']").each(function() {
    $(this).remove();
});

或更简洁地说,这同样适用:

$(".ct option[value='X']").remove();

1
这对我有用。谢谢。将其限制为选定值=''.ct”的语法是什么?
user135498

2
如果您不需要知道价值,这是最简单的。例如,删除第一个选项$(“#affiliate”)[0] [0] .remove();
ladieu14 2014年

55
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

要不就

$('.ct option[value="X"]').remove();

要点是find接受选择器字符串,通过输入选择器字符串,x您正在寻找名为的元素x


5
1,我很喜欢这个答案,我认为它的更好,因为我可以测试“X”像或部分value<select>元素
谢里夫

1
我使用了这个答案,因为我不得不删除除val = 0之外的所有其他选项。我使用!= 0并像魅力一样工作:)
Lakshman Pilaka 2015年

31

find()需要一个选择器,而不是一个值。这意味着您需要以与使用常规jQuery函数($('selector'))相同的方式来使用它。

因此,您需要执行以下操作:

$(this).find('[value="X"]').remove();

请参阅jQuery 查找文档。


1
在将变量传递到追加的情况下要好得多
Neurothustra

3

它适用于选项标签或文本字段:

$("#idname option[value='option1']").remove();

1

如果您的下拉列表位于表中,并且没有ID,则可以使用以下jquery:

var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();

1

对于jQuery <1.8,您可以使用:

$('#selectedId option').slice(index1,index2).remove()

删除特定范围的选择选项。


1

当我执行删除操作时,该选项仍保留在视图中的ddl中,但在html中消失了(如果您检查页面)

$("#ddlSelectList option[value='2']").remove(); //removes the option with value = 2
$('#ddlSelectList').val('').trigger('chosen:updated'); //refreshes the drop down list

1

迭代列表并使用查找删除多个项目。响应包含一个整数数组。$('#OneSelectList')是一个选择列表。

$.ajax({
    url: "Controller/Action",
    type: "GET",
    success: function (response) {
        // Take out excluded years.
        $.each(response, function (j, responseYear) {
            $('#OneSelectList').find('[value="' + responseYear + '"]').remove();
        });
    },
    error: function (response) {
        console.log("Error");
    }
});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.