是否有jquery解决方案可以通过显示文本从选择下拉列表中删除项目

是否有jquery解决方案可以通过显示文本从选择下拉列表中删除项目,jquery,jquery-selectors,drop-down-menu,Jquery,Jquery Selectors,Drop Down Menu,我看到了许多通过“项目”值从“选择”下拉列表中删除项目的示例,例如,如果我只知道显示文本,是否有办法从“选择”下拉列表中删除项目?尝试以下方法: $("#Select>option:contains(yourtext)").remove(); 在本地对其进行了测试,结果正常。与我相关的确切代码片段是: <select id="FundManager1" class="FundManagerSelect"> <option>Fund Manager 1<

我看到了许多通过“项目”值从“选择”下拉列表中删除项目的示例,例如,如果我只知道显示文本,是否有办法从“选择”下拉列表中删除项目?

尝试以下方法:

$("#Select>option:contains(yourtext)").remove();
在本地对其进行了测试,结果正常。与我相关的确切代码片段是:

<select id="FundManager1" class="FundManagerSelect">
    <option>Fund Manager 1</option>
    <option>Fund Manager 2</option>
    <option>Fund Manager 3</option>
</select>
你可以把它放在一个函数中:

function RemoveOption(SelectId, TextVal) {
    $("#" + SelectId + ">option:contains(" + TextVal + ")").remove();
}

RemoveOption("FundManager1", "1");
进一步编辑类选择器问题:

对于类选择器,请按预期将替换为“.”:

$(".YourSelectClass>option:contains(yourtext)").remove();
由于这只是一个选择,您可以通过结合元素选择器来加快速度:

$("select.YourSelectClass>option:contains(yourtext)").remove();

我想您可以对它们进行迭代:

$('select option').each(function()
{
    if ($(this).text() == 'something')
    {
        $(this).remove();
    }
});

编辑:James Wisman的答案更简洁,但如果选项中有不合适的字符,可能会干扰选择器语法,那么这可能会更简单。

非常确定您希望在文本周围加引号:“yourtext”,除非您的文本是一个变量,您可能需要弄清楚。@Dominic Rodger。不,它按原样工作。用空格也试过了。作为一个类选择器,是否还有其他方法可以这样做,以便我可以一次从多个选择中删除一个项目?+1-同意。然而,我并没有遇到过太多这样的例子:-作为一个类选择器,是否有必要这样做,以使它适用于带有一组代码的多个选择?
$('select option').each(function()
{
    if ($(this).text() == 'something')
    {
        $(this).remove();
    }
});