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