我有以下HTML代码。
使用PHP中的DomDocument,在具有id为“current”的div之前添加一个额外的div。
当我使用以下代码时,它似乎将div添加到id为“current”的div内部,但是在此div的内容之前。有人能告诉我这是为什么以及如何使结果与上面的HTML相同吗?(请参见下面的HTML问题) 当前PHP:
<div id="container">
<div id="current">Current Div</div>
</div>
使用PHP中的DomDocument,在具有id为“current”的div之前添加一个额外的div。
<div id="container">
<div id="new">New Div</div>
<div id="current">Current Div</div>
</div>
当我使用以下代码时,它似乎将div添加到id为“current”的div内部,但是在此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>
EDIT:
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))
input
元素是否已经存在于index.html
中?如果是这样,请您发布导致问题的 PHP 代码行。 - Darragh Enright