【问题标题】:PHP or Javascript: Simply Remove and Replace HTML CodePHP 或 Javascript:简单地删除和替换 HTML 代码
【发布时间】:2011-04-03 02:32:33
【问题描述】:

我的页面上有此代码,但链接的名称和 ID 不同:

   <div class="myclass">
    <a href="http://www.example.com/?vstid=00575000&amp;veranstaltung=http://www.example.com/page.html">
Example Text</a>
    </div>

我怎样才能删除并替换它:

<div class="myclass">Sorry no link</div>

使用 PHP 还是 Javascript?我用 str.replace 试过了

谢谢!

【问题讨论】:

  • 这个 html 何时以及如何生成?

标签: php javascript replace


【解决方案1】:

我假设你的意思是动态的?您将无法使用 php 执行此操作,因为它是服务器端的,并且一旦将 HTML 输出到屏幕上,它就与 HTML 没有任何关系。

有关 javascript,请参阅:http://www.tizag.com/javascriptT/javascript-innerHTML.php

或者你可以使用 jquery,它比尝试做一个跨浏览器兼容的 javascript 脚本更好更好。

$('.myclass').html('Sorry...');

【讨论】:

    【解决方案2】:

    如果在您需要进行替换之前该页面仍在服务器上,请执行以下操作:

    <?php if (allowed_to_see_link()) { ?>
    <div class="myclass">
    <a href="http://www.example.com/?   vstid=00575000&amp;veranstaltung=http://www.example.com/page.html">
     Example Text</a>
    </div>
    <?php } else { ?>
    non-link-text
     <php } ?>
    

    并且还要编写命名函数...

    【讨论】:

      【解决方案3】:

      您可能想弄清楚自己在做什么。如果那是您的文件,那么您可以简单地在编辑器中打开并删除这些部分。如果想用PHP修改HTML,可以使用native DOM

      $dom = new DOMDocument;
      $dom->loadHTML($htmlString);
      $xPath = new DOMXPath($dom);
      foreach( $xPath->query('//div[@class="myclass"]/a') as $link) {
          $link->parentNode->replaceChild(new DOMText('Sorry no link'), $link);
      }
      echo $dom->saveHTML();
      

      上面的代码将替换具有 myclass 类属性的任何 &lt;div&gt; 元素的任何直接 &lt;a&gt; 元素子元素,Textnode 为“Sorry no link”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多