我想在类'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;
但这没用。