Javascript jQuery从选择中删除选项

Javascript jQuery从选择中删除选项,javascript,jquery,html-select,Javascript,Jquery,Html Select,我有一个包含5个选项的页面,所有选项都有一个类名“ct”。在运行onclick事件时,我需要从每个select中删除值为“X”的选项。我的代码是: $(".ct").each(function() { $(this).find('X').remove(); }); 我哪里出错了?试试这个: $(".ct option[value='X']").each(function() { $(this).remove(); }); 或者更简洁地说,这同样有效: $(".ct op

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

$(".ct").each(function() {
    $(this).find('X').remove();
   });
我哪里出错了?

试试这个:

$(".ct option[value='X']").each(function() {
    $(this).remove();
});
或者更简洁地说,这同样有效:

$(".ct option[value='X']").remove();
“查找”接受选择器,而不是值。这意味着您需要以与使用常规jQuery函数$'selector'相同的方式使用它

因此,您需要这样做:

$(this).find('[value="X"]').remove();
请参阅jQuery文档

或者只是

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

要点是find接受一个选择器字符串,通过将其输入x,您将查找名为x的元素。

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

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

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

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

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

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

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

当我仅仅删除一个选项时,该选项仍保留在视图的ddl中,但如果您检查页面,它将消失在html中

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

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

这对我有用。谢谢sytax如何将其限制为具有选定值=。ct?如果不需要知道该值,这是最简单的。例如,删除第一个选项$affiliate[0][0]。删除+1我喜欢这个答案我认为它更好,因为我可以测试'X'作为元素的类似值或部分值。我使用这个答案,因为我必须删除除val=0以外的所有选项。我用过!=0并像charm一样工作:在将变量传递给appender的情况下,效果更好:$'select'.children'option[value=X]'.remove;
$.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");
    }
});