我试图将一个存储在变量中的字符串附加到HTML元素。我编写了下面的函数,它工作正常,但我得到了#34;致命错误:未捕获错误:调用未定义的方法DOMNodeList :: appendChild()"添加新帖子后出现错误消息。
德尔>
更新
我认为之前给出的信息是无关紧要的,所以我只需要知道如何将下面的字符串添加到注释位置的HTML中。
PHP
$string = "some text";
HTML
<div id="wrapper">
<div>some content</div>
<div>some content</div>
<div>some content</div>
<!--Place where I need to add the string same as it is-->
</div>
答案 0 :(得分:0)
您没有发布完整代码,但我假设您有一个 DOMXPath
,您可以在其中调用query
方法。
修改:您确实发布了完整代码,并且您正在使用DOMXPath
DOMNodeList
,该列表包含DOMNode
s。
您只能在appendChild
上调用DOMNode
,因为DOMNodeList
上未定义该方法。
使用此功能从DOMNode
获取第一个DOMNodeList
:
$wrapper->item(0)->appendChild($newpost);
这会从列表中获取您可以调用appendChild
方法的第一项。
此行不起作用:
$newpost = "<?php echo include('/assets/includes/post-template.php'); ?>";
因为这是您尝试作为DOM / HTML插入的PHP代码
请改为:
// New temp document
$templateDoc = new DOMDocument();
// Load your template file into this document
$templateDoc->loadHTMLFile($DOCUMENT_ROOT . '/assets/includes/post-template.php')
// Get all immediate children of your template document
$templateElements = $doc->getElementsByTagName('*');
在你的if
声明中:
foreach($templateElements as $templateElement){
// Append all children to your wrapper
$wrapper->item(0)->appendChild($templateElement);
}