2016-08-12 69 views
0

我已经传递了一个文本值,该值与列表中的li选项卡元素的文本相匹配。如何通过文本值搜索键删除一个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(); 

    } 

回答

1

你缺少一个'

$('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>

0

您在代码中有语法错误。最后的额外报价是打破选择。您需要使用:

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