我尝试通过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");
?>
答案 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);
}
告诉我这是否是你想要的结果。