如何通过文本值搜索键删除子 li 元素?

How to remove a child li element by text value search key?

我传递了一个与列表中 li 选项卡元素的文本相匹配的文本值。

然后我需要删除页面上与该搜索文本值匹配的所有选项卡。因此,例如,我将 "Chart1" 传递给 ClearGraph 方法,它应该删除与列表中该文本值匹配的所有选项卡。

这就是我在方法中尝试的方法,传递图表文本值并调用 .contains() 然后 .remove():

    function clearGraph(chart_text)
    {
        //Remove the chart tab by the text value
        $('#chartTabs li:contains('+ chart_text + ")'").remove();

    }

但是我在调​​用方法时收到控制台错误,jquery-2.2.2.js:1468 Uncaught Error: Syntax error, unrecognized expression: #chartTabs li:contains( Chart 1)'

问题: 如何通过文本值搜索键删除子 li 元素?

标记和关联的 ClearGraph 方法定义如下:

    <ul class="nav nav-pills" id="chartTabs">
        @* dynamically create the tab elements in d3 js *@
    </ul>


    function clearGraph(chart_text)
    {
        //Remove the chart tab by the text value
        $('#chartTabs li:contains('+ chart_text + ")'").remove();

    }

您的代码中存在语法错误。最后的额外引号破坏了选择器。您需要使用:

$('#chartTabs li:contains('+ chart_text + ')').remove();

您缺少 '

$('button').click(function()
{
  var input = $('input').val();
  $("#chartTabs li:contains('" + input + "')").remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav nav-pills" id="chartTabs">
  <li>Foo</li>
  <li>Bar</li>
</ul>
<input type="text"/>
<button type="button">Clear</button>