jQuery 从选择中删除选项

IT技术 javascript jquery html-select
2021-02-07 15:28:02

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

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

我哪里错了?

6个回答

试试这个:

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

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

$(".ct option[value='X']").remove();
这对我有用。谢谢。使用选定值 = '' 将其限制为 .ct 的语法是什么?
2021-03-16 15:28:02
如果您不需要知道值,这是最简单的。例如删除第一个选项 $("#affiliate")[0][0].remove();
2021-03-30 15:28:02
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

要不就

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

重点是它find需要一个选择器字符串,通过提供它x你正在寻找名为x.

我使用了这个答案,因为我必须删除除 val = 0 以外的所有选项。我使用了 != 0 并像魅力一样工作:)
2021-03-25 15:28:02
+1 我喜欢这个答案,我认为它更好,因为我可以像测试“X”一样或作为valuefor<select>元素的一部分
2021-03-30 15:28:02

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

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

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

请参阅 jQuery查找文档。

在将变量传递给追加的情况下会好得多
2021-04-13 15:28:02

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

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

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

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