【问题标题】:Delete divs from html source code [closed]从 html 源代码中删除 div [关闭]
【发布时间】:2012-09-12 23:12:05
【问题描述】:

我有很多 div 的 html 代码,想从这段代码中删除一些 div,用 substr() 或类似的 php 字符串函数很难做到,也许是更好的方法?

【问题讨论】:

  • 你能用javascript还是jquery?
  • 为什么要使用服务器端代码来实现客户端功能?
  • @Phil 和 Nygma7,为什么这应该是客户端?您可能希望在服务器端执行此操作的原因有很多。
  • 好吧,我想我真的不知道情况,但我假设他想要一些用户事件来更改客户端页面上的 html,我只是不知道这是怎么发生的服务器端
  • 在服务器端构建页面,您可以删除 div,它们不会发送到客户端。这一切都取决于情况。

标签: php html formatting code-formatting


【解决方案1】:

您可以使用 javascript 来做到这一点。只需给 div 唯一的 id,然后你就可以像这样编写一些简单的 javascript。

 document.getElementById('divid').remove();

注意:在运行 remove() 之前确保元素已加载。 - 您可以使用 jquery 执行此操作。

$(document).ready(function(){
     document.getElementById('divid').remove();
});

提醒一下,如果您决定在文档加载后的某个时间添加元素,然后删除它们,您可以使用以下代码检查元素是否存在。 (再次使用 jquery 库),也可以将 css 选择器与对象一起使用,就像您使用 jquery 一样。

if ($("#divid").length > 0){
    $('#divid').remove();
}

如果说,该代码会变得很方便-您逐渐将元素添加到文档中,就像实时评论系统一样,您可以使用setInterval(),继续检查元素是否存在,如果存在,则将其删除.


如果您需要使用 php 执行此操作,那么 Brian Agnew 使用 PHP HTML parser 的回答应该可以解决您的问题。

【讨论】:

  • 有趣我会试试这个;)
  • @TomasLietuva 使用 jQuery 并运行 $(document).ready() - 查看其他答案
  • 太好了,如果您有任何问题,请随时在此处发表评论。如果它有效,我会很感激它被“接受”,谢谢:)
【解决方案2】:
>try this.. ;)

> str_replace("<div>","") and 
> str_replace("</div>","") 

【讨论】:

  • str_replace 和格式化的 HTML 从不是个好主意。
【解决方案3】:

使用DOMDocument 解析 HTML 的绝佳机会。

$html = new DOMDocument();
$html->loadHTML($html_string);

然后您可以使用任何可用的方法从文档中查找和删除元素,例如getElementsByTagName。然后将它们从$html 中删除并重新导出文档($html-&gt;saveHTML()

【讨论】:

    【解决方案4】:

    您能否进一步详细说明您的用例?我会在 JS 中执行此操作 - 提供您想要删除的 div 类,例如 .remove,然后在 jQuery 中执行以下操作:

    $(document).ready(function(){
         $('.remove').remove()
    });
    

    或者,在 php 中解析 HTML 并将其删除也有办法。

    【讨论】:

      【解决方案5】:

      我建议您查看PHP HTML parser 以可靠地执行此操作。

      【讨论】:

        【解决方案6】:

        strip_tags() 可能会有所帮助:

        http://php.net/manual/en/function.strip-tags.php

        【讨论】:

        • 此代码中的一些 div 推断出选择性删除,strip_tags 对此没有帮助(除非我误解了这个问题)。
        • 正如我所说,它可能会有所帮助。实际问题不是很详尽,因此答案含糊:-)
        • 但是看到我不仅要删除标签&lt;div id="ex"&gt;,还要删除此标签旁边的所有字符,我认为strip_tags() 对我的问题没有办法。
        猜你喜欢
        • 2010-11-20
        • 1970-01-01
        • 2013-03-27
        • 2013-01-19
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多