用php删除<div> innerHTML

时间:2016-06-12 19:30:19

标签: php html

我尝试通过php更改html页面。我们的想法是重新塑造“满足感”。属性和动态更改文本。但我想将它保存在原始的html中。 为此,我在div元素中有一些初始文本。我转换为带有textarea的表单,重新加载页面,然后我可以使用文本。接下来我想将textarea的内容返回到原始div中。它应该替换旧文本。它似乎工作,除了旧文本总是附加,我无法摆脱它。问题可能出在setInnerHTML函数中。我试过了:

$element->parentNode->removeChild($element);

但由于某种原因它不起作用。 谢谢!

<?php
$text = $_POST["text"];
$id = $_GET["id"];
$ref = $_GET["ref"];
$html = new DOMDocument(); 
$html->loadHTMLFile($ref.".html"); 
$html->preserveWhiteSpace = false;
$html->formatOutput       = true;
$elem = $html->getElementById($id); 

function setInnerHTML($DOM, $element, $innerHTML) 
  {
  $DOM->deleteTextNode($innerHTML);  
  $element->parentNode->removeChild($element);
  $node = $DOM->createTextNode($innerHTML);  
  $element->appendChild($node);
  }
setInnerHTML($html, $elem, $text);


$html->saveHTMLFile($ref.".html");
?>

1 个答案:

答案 0 :(得分:1)

尝试将setInnerHTML更改为如下所示:

function setInnerHTML($DOM, $element, $innerHTML) {
  $node = $DOM->createTextNode($innerHTML);
  $children = $element->childNodes;
  foreach ($children as $child) {
    $element->removeChild($child);
  }
  $element->appendChild($node);
}

告诉我这是否是你想要的结果。