繁体   English   中英

如何删除不带属性的div标签; 同时保留内部HTML?

How to Remove div Tags Without Attributes; While Keeping Inner HTML?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想使用PHP DOM Document删除不包含任何属性的div标签。 但是,我希望能够保留所有内部HTML内容。

例:

<div>
    <div>
        <div id="test">
            Testing...
        </div><!-- end #test -->
    </div>
</div>

结果:

<div id="test">
    Testing...
</div><!-- end #test -->

这就是我的想法,但似乎无法让它完成我想要的事情。 此方法似乎是删除所有内容,而不是没有属性的<div>标记。

# Remove blank div wraps
if ( $div_tags = $dom->getElementsByTagName( 'div' ) ) {

    $blank_divs = array();

    foreach ( $div_tags as $div_tag ) {

        if ( ! $div_tag->hasAttributes() ) {
            $blank_divs[] = $div_tag;
        }

    }

    if ( ! empty( $blank_divs ) ) {

        foreach ( array_reverse( $blank_divs ) as $blank_div ) {
            $blank_div->parentNode->removeChild( $blank_div );
        }

    }

}
1 个回复

如果您知道需要删除多少次迭代,则可以执行以下操作:

var icount = 2; // number of iterations.
for(i=0; i<icount; i++){
    var innerElement = $("#test").contents();
    $("#test").replaceWith(innerElement );
}

如果您不了解自己的烦恼,则只需拥有一个可识别的父母,例如:

<div id="container">
  <div>
    <div id="test">
        Testing...
    </div><!-- end #test -->
  </div>
</div>

<script>
  var innerElement = $("#test").contents();
  $("#container").replaceWith(innerElement );
</script>
1 删除html标签,但保留内部html

我有一个带有大型菜单的导航菜单。它具有多个标记以使其成为大型菜单。但是我想在小视口中删除一些标记。 所以我的标记是 我想要的是 i have two mega-menu-wrapper 我尝试过的 它在每个超级菜单中的两个菜单中都列出相同的列表,并且在每个me ...

3 在保留内部文本的同时删除HTML标签
标签

我想同时保留文本,并从HTML内容中删除跨度,字体,B,S,打击(以及其它内部元件)标签&lt;br&gt;标签里面。 为此,我使用了HTML敏捷包。 我设法保留了文本,但是&lt;br&gt;标签仍然是一个问题。 有任何想法吗? 这是代码: 例如,输入将是: 并且输 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM