jquery删除列表项.text()=’blabla’

我有以下结构

我需要删除锚元素为blabla的li元素。

我该如何选择这个元素? $(--what selector here--)

或者我是否需要遍历每个li并将其.text()值与’blabla’进行比较?

如果你想要一个contains (子串匹配),那么:contains()有效:

 $('li:contains("blabla")').remove(); 

如果你想要完全匹配,例如不匹配“blablabla”,你可以使用.filter()

 $('li').filter(function() { return $.text([this]) === 'blabla'; }).remove(); 
 $('li > a:contains("blabla")').remove(); 

看看:包含选择器 。

我刚才注意到 :contains部分匹配。 你可能需要……

 $('li > a:contains("blabla")').each(function() { if ($(this).text() === 'blabla') { $(this).parent().remove(); } }); 

如果这样做,你也可以使选择器不那么严格。

……或者你可以像Nick Craver那样做得更整洁 。

如果你想避免删除含有blabla li ,除非进一步嵌套blabla ,请使用:

$("ul li > a:contains('blabla')").parent().remove() ;

否则,即使“blabla”不是您可能定位的位置,也会删除此HTML中的第一个li

 
  • Some nested content here: Blablabla
  • Some text