将元素添加为特定div中的第一个子元素-PHP

时间:2019-04-05 03:31:44

标签: php html dom

我想在类'jumbotron'的div元素中添加元素h3。并且,此h3必须是div的第一个孩子。 问题是div可以具有各种元素,而我不能使用insertBefore(DOMNode)。

我正在使用php语言。

首先,我有以下代码:

<div class="jumbotron" name="div_jbt" id="div1">
     <p>text etc...</p>
     <img src="../img.jpg">
</div>

我想将元素h3添加为该div的第一个子元素:

<div class="jumbotron" name="div_jbt" id="div1">
     <h3>Title</h3>
     <p>text etc...</p>
     <img src="../img.jpg">
</div>

或者,在另一种情况下,我可以使用以下代码:

<div class="jumbotron" name="div_jbt" id="div1">
     <div>test</div>
     <img src="../img.jpg">
     <p>text etc...</p>
</div>

类似地,我想将元素h3添加为该div的第一个子元素:

<div class="jumbotron" name="div_jbt" id="div1">
     <h3>Title</h3>
     <div>test</div>
     <img src="../img.jpg">
     <p>text etc...</p>
</div>

PHP代码:

$doc = new DOMDocument();
$doc->loadHTML($html);
// find the 1º div
$div = $doc->getElementsByTagName("div")->item(0);
// create new h3 tag
$h3 = $doc->createElement("h3", "Title test"); 
// insert created element after 1º div
$div->parentNode->insertBefore($h3, $div); 
$html = $doc->saveHTML();

因此,无论如何,我想将h3元素作为第一个孩子添加到div类超巨星中。

编辑: 我是这样做的:

$dom = new DOMDocument();
$dom->loadHTML($body);

$h3 = $dom->createElement("h3", "Title test"); 

$dom->insertBefore($h3, $dom->firstChild);

$body = $dom->saveHTML();
$string_body .= $body;

但这没用。

0 个答案:

没有答案