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

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

我哪里说错了?


当前回答

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

或者只是

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

重点是find函数接受一个选择器字符串,通过输入x,你在寻找名为x的元素。

其他回答

试试这个:

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

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

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

删除所有选项

$(".select").empty();

删除所有选项并添加一个空白选项

$(".select").empty().append(new Option('--Select--',''));

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

因此,你需要这样做:

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

参见jQuery find docs。

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

或者只是

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

重点是find函数接受一个选择器字符串,通过输入x,你在寻找名为x的元素。

我尝试了这段代码:

$ (" # select列表")空虚()