jQuery从select中删除选项

use*_*498 208 javascript jquery html-select

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

$(".ct").each(function() {
    $(this).find('X').remove();
   });
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

And*_*are 421

试试这个:

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

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

$(".ct option[value='X']").remove();
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。谢谢。将其限制为 .ct 且选定值 = '' 的语法是什么? (2认同)
  • 如果您不需要知道该值,这是最简单的.例如,删除第一个选项$("#affiliate")[0] [0] .remove(); (2认同)

med*_*iev 51

$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

要不就

$('.ct option[value="X"]').remove();
Run Code Online (Sandbox Code Playgroud)

主要的是find采用一个选择器字符串,通过喂它x你正在寻找名为的元素x.

  • +1我喜欢这个答案我认为它更好,因为我可以测试'X'或`<select>`元素的'value`的一部分 (5认同)

TM.*_*TM. 28

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

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

$(this).find('[value="X"]').remove();
Run Code Online (Sandbox Code Playgroud)

请参阅jQuery 查找文档.


Ash*_*shu 6

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

$("#idname option[value='option1']").remove();
Run Code Online (Sandbox Code Playgroud)


小智 6

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

$(this).find('select').find('option[value]').remove();
Run Code Online (Sandbox Code Playgroud)