【问题标题】:How to remove text between two elements with jQuery如何使用jQuery删除两个元素之间的文本
【发布时间】:2013-05-11 01:21:30
【问题描述】:

所以我得到了以下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 来实现这一点?

【问题讨论】:

    标签: javascript jquery text dom-manipulation


    【解决方案1】:

    使用.contents().filter() 过滤掉所有下一个节点(nodeType == 3),然后使用.remove() 删除它们

    $('ul').contents().filter(function(){
        return this.nodeType == 3
    }).remove()
    

    演示:Fiddle

    【讨论】:

    • 哇!非常感谢!我真的不知道为什么会这样,但确实如此。 :)
    • @jurihandl 阅读链接文档,你会有所了解
    • 好酷。现在我懂了!谢谢!我什至不知道有这样的东西存在。
    【解决方案2】:

    试试:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-31
        • 2015-05-17
        • 2011-10-05
        • 2014-09-27
        • 1970-01-01
        • 2014-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多