Добавить элемент в качестве первого потомка в конкретном div - php - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу добавить элемент 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;

Но это не сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...