如果文本与jQuery中的字符串匹配,则删除元素

its*_*uta 1 javascript jquery

我有以下标记:

<div id="breadcrumbs">
  <ul>
   <li><span class="crumblink"><a href="/">Home</a></span></li>
   <span class="arrows"> »</span>  
   <li><span class="crumblink"><a href="/locations-brands">Publishing Regions</a></span></li>
   <span class="arrows"> »</span>  
   <li><span class="crumblink"><a href="/locations-brands/publications">Locations &amp; Brands</a></span></li>
   <span class="arrows"> »</span>
   <li><span class="crumblink"><a href="/locations-brands/publications/popupbrand">Publications</a></span></li>
   <span class="arrows"> »</span>  
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

如何删除<li>if有字符串"Publications"及其下一个span.arrows

T.J*_*der 5

有几种方法可以做到这一点,但一种方法是使用$()选择器来查找lis,然后循环遍历它们(each()很方便)text()用于获取文本,String#indexOf检查内容,以及next()查看下一个是什么是一个相关的跨度(但请参阅下面的注释),当然还有remove()一个元素.

选择lis时,可以使用jQuery添加的特殊:contains("text")选择器,但请注意,如果这样做,则意味着jQuery无法使用浏览器的内置工具来查找元素,因此可能会对性能产生影响.


请注意,您的HTML无效.ul元素 不能span子元素; ul元素唯一有效的直接子元素是li元素(spans如果您愿意,可以在其中包含元素).当您发送类似浏览器的无效标记时,浏览器会执行什么操作.