Я хочу добавить элемент h3 в элемент div класса 'jumbotron'.И этот 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 в качестве первого дочернего элемента вjumbotron класса div в любом случае.
РЕДАКТИРОВАТЬ: Я сделал это:
$dom = new DOMDocument();
$dom->loadHTML($body);
$h3 = $dom->createElement("h3", "Title test");
$dom->insertBefore($h3, $dom->firstChild);
$body = $dom->saveHTML();
$string_body .= $body;
Но это не сработало.