是否有一个jquery解决方案,用于通过显示文本从选择下拉列表中删除项目

leo*_*ora 2 jquery jquery-selectors drop-down-menu

我看到了一些通过项目值(例如这个问题)从选择下拉列表中删除项目的示例,但如果我知道的是显示文本,是否有一种方法可以从选择下拉列表中删除项目?

Jam*_*man 8

试试这个:

$("#Select>option:contains(yourtext)").remove();
Run Code Online (Sandbox Code Playgroud)

在本地测试它,它的工作原理.与我相关的完整代码片段是:

<select id="FundManager1" class="FundManagerSelect">
    <option>Fund Manager 1</option>
    <option>Fund Manager 2</option>
    <option>Fund Manager 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

然后是jQuery:

$(document).ready(function(){
    alert($("#FundManager1>option").length);  //alerts '3'
    $("#FundManager1>option:contains(1)").remove();
    alert($("#FundManager1>option").length);  //alerts '2'
});
Run Code Online (Sandbox Code Playgroud)

你总是可以把它放在一个函数中:

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

RemoveOption("FundManager1", "1");
Run Code Online (Sandbox Code Playgroud)

进一步编辑类选择器问题:

对于类选择器,将'#'替换为'.' 如你所料:

$(".YourSelectClass>option:contains(yourtext)").remove();
Run Code Online (Sandbox Code Playgroud)

因为这只是一个选择,你可以通过与元素选择器结合来加速它:

$("select.YourSelectClass>option:contains(yourtext)").remove();
Run Code Online (Sandbox Code Playgroud)