如何使用jQuery删除两个元素之间的文本

7

所以我有以下的html代码:

<ul>
   <li><a href="#">test</a></li>
   /
   <li><a href="#">test</a></li>
   /
   <li><a href="#">test</a></li>
   /
   <li><a href="#">test</a></li>
<ul>

可悲的是,这是由一个被分叉的Plone扩展程序生成的,我没有改变输出的可能性。在不同的页面上,列表将具有不同数量的元素。

我需要做的就是删除列表元素之间的斜杠。到现在为止,我还想不出一个好的解决方案。

是否有一种简单而强大的解决方法可以使用Javascript或jQuery来实现此目的?

3个回答

13
使用 .contents().filter() 进行过滤,过滤掉所有下一个节点 (nodeType == 3),然后使用 .remove() 将它们移除。
$('ul').contents().filter(function(){
    return this.nodeType == 3
}).remove()

演示:Fiddle


哇!非常感谢!我不是很清楚为什么这个有效,但它确实有效。 :) - jurihandl
@jurihandl 请阅读相关文档,你会有一些想法的。 - Arun P Johny
好的,太酷了。现在我懂了!谢谢!我甚至不知道这样的东西存在。 - jurihandl

0

尝试:

document.getElementsByTagName("ul")[0].textContent.replace(/\//g,"")

0

将输出分配给名为 outPut 的字符串,然后

outPut.replace('/','');

output.replace('a><li','a></li');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接