jQuery从select中删除选项

时间:2009-10-05 04:03:17

标签: javascript jquery html-select

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

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

我哪里错了?

9 个答案:

答案 0 :(得分:394)

试试这个:

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

或者更简洁,这也会起作用:

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

答案 1 :(得分:46)

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

或者只是

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

要点是find接受一个选择器字符串,通过提供它x您正在寻找名为x的元素。

答案 2 :(得分:25)

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

因此你需要做这样的事情:

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

请参阅jQuery find文档。

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

如果你的下拉列表在一个表中并且你没有id,那么你可以使用以下jquery:

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

答案 5 :(得分:1)

对于jquery< 1.8你可以使用:

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

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

答案 6 :(得分:1)

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

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

答案 7 :(得分:0)

遍历列表并使用查找删除多个项目。 响应包含一个整数数组。 $('#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");
    }
});

答案 8 :(得分:0)

如果没有 id 或 class 可用于选项值,则可以从下拉列表中删除所有值,如下所示

$(this).find('select').find('option[value]').remove();