我有以下 HTML。
<div id="container">
<div id="current">Current Div</div>
</div>
在 PHP 中使用 DomDocument,我试图在 id 为“current”的 div 之前向 HTML 添加一个额外的 div。
<div id="container">
<div id="new">New Div</div>
<div id="current">Current Div</div>
</div>
当我使用以下代码时,它似乎将 div 添加到 div 中,id 为“current”,但在此 div 的内容之前。谁能告诉我为什么会这样以及如何获得像上面的 HTML 一样的结果? (请参阅下面的 HTML 问题)
当前的 PHP
$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTMLFile('index.html');
$head = $doc->getElementById('current');
$base = $doc->createElement('div', 'New Div');
$base->setAttribute('id', 'new');
echo $doc->saveHTML();
HTML 问题
<div id="container">
<div id="current">
<div id="new">New Div</div>
Current Div
</div>
</div>
编辑:
PHP
$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTMLFile('index.html');
$container = $doc->getElementById('container');
$current = $doc->getElementById('username');
$new = $doc->createElement('div', 'New Div');
$new->setAttribute('id', 'new');
$container->insertBefore($new, $current);
echo $doc->saveHTML();
HTML
<div id="container">
<form method="post" action="">
<input type="text" name="username" id="username" />
</form>
</div>
错误:
Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error'
in index.php:55 Stack trace: #0 index.php(55):
DOMNode->insertBefore(Object(DOMElement), Object(DOMElement))