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

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

我哪里说错了?


当前回答

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

因此,你需要这样做:

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

参见jQuery find docs。

其他回答

试试这个:

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

或者更简洁地说,这也同样有效:

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

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

它工作在选项标签或文本字段:

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

对于jquery < 1.8,你可以使用:

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

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

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

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