【问题标题】:How do I access DOM elements on a php page with php?如何使用 php 访问 php 页面上的 DOM 元素?
【发布时间】:2012-05-16 09:13:26
【问题描述】:

我想在我的 header.php 文件中运行这段代码

<?php 
$doc = new DOMDocument();
$doc->load('wp-content/themes/foo/header.php');
$header_li_elements = $doc->getElementsByTagName('li');
foreach($header_li_elements as $value){
echo $value->nodeValue;
}
?>

这可能吗?

我希望能够运行一个 php 函数来检查我当前所在的页面,然后更改特定 nav 元素的 id 属性,以便我可以动态更改任何页面的 nav 元素的外观我上。

目前我只是试图访问我所在页面上的“li”元素,然后回显它们,我可以从那里开始工作。有什么想法吗?

对不起,如果它令人困惑。我很难描述我的想法。

【问题讨论】:

    标签: php dom


    【解决方案1】:

    由于该页面是动态的(例如 HTML 是由 PHP 生成的),这将不起作用,因为您要解析的 HTML 还不存在。它直到运行时才创建。您必须找到另一种方法来执行此操作,例如检查当前 URL 并使用它来确定导航栏的外观。

    【讨论】:

    • 谢谢,您对这个过程的具体方法有什么想法吗?
    【解决方案2】:

    为此,您的 php 必须像解析 XML 一样解析 HTML。并非不可能,但更适合单行 jQuery 的工作。

    如果您出于某种原因坚持在服务器端执行此操作,最好在生成列表项时捕获它们,而不是等到它们作为一个巨大的字符串返回然后尝试将它们全部变回标签,这样您就可以操纵它们,只是再次将它们变回一个巨大的字符串。

    看起来像 Wordpress,我很确定 Wordpress 有可用的 API 来帮助您完成此任务,但我们需要确切了解 header.php 中发生了什么。

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      相关资源
      最近更新 更多