javascript - 反向删除空段落并移至下一个元素

标签 javascript jquery html

我有一个包含文本的页面,但某些容器有空的段落标签,每个标签都在末尾。重要的是,我不要在文本结束后删除内容之间的任何内容。我对此的想法是首先循环遍历容器,然后以相反的顺序检查所有段落标签,删除与正则表达式匹配的任何内容,当它遇到某些内容时 - 继续到下一个元素。我为此创建了一个 jsfiddle,但它仅将它们从最后一个面板中删除。

jquery

$(document).ready(function() {
    $(".content").each(function() {
        $($("p").get().reverse()).each(function() {
            var $this = $(this);
            if ($this.html().replace(/\s| /g, '').length == 0) {
                $this.remove();
            } 
            else {
                return false;
            }
        });
    });
});

HTML

<div class="content">
    <p>Blah</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>Another Paragraph I want to keep</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
</div>

<div class="content">
    <p>Blah</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>Another Paragraph I want to keep</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
</div>

<div class="content">
    <p>Blah</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>Another Paragraph I want to keep</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>another paragraph</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
</div>

https://jsfiddle.net/659Lejgz/1/

我感觉自己离自己很近,但又遥不可及。任何帮助都会非常好!

最佳答案

您需要更改$($("p").get().reverse()).each(function() {

至:$($(this).find("p").get().reverse()).each(function() {

实际上,当发生在原始代码中时,虽然我们循环遍历 .content 元素,但在循环的每次迭代中,我们都会查询 p 元素整个文档的上下文,并且由于我们反转结果,因此我们总是获得最后一个 .content 元素的最后一个 p 元素。

通过将 $("p") 更改为 $(this).find("p"),我们强制 jQuery 搜索 p 元素仅位于我们当前正在迭代的 .content 元素内。

关于javascript - 反向删除空段落并移至下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704537/

相关文章:

javascript - d.source 是什么? [文档指的是其本身]

java - 如何在 JEditorPane 中显示 html 文件

javascript - React 函数式组件,setState 和不变性

javascript - 嵌入式 React + JSS 组件 : how to protect generic elements like <button>, <p> 从获取包含页面的样式?

javascript - 在 AngularJS 中处理复杂的 JSON

javascript - 如何让tooltipsy随鼠标移动

javascript - 在缩略图库中显示图像

jquery - 防止在移动设备上缩放

javascript - 从顶部滚动时如何暂停轮播/ slider 并在滚动到顶部时重新开始?

javascript - 在javascript中将json对象写入文本文件