使用insertBefore()在特定位置追加子项时出错



我正试图使用insertBefore((方法将child始终附加在div的第二个位置,这给出了一个错误。

var j = document.createElement('div');
j.innerHTML = '<p>CreateElement example</p>'
document.insertBefore(j, document.querySelector('.test').children[1]);
<div class="test">
<div class="first">
<p>hello world</p>
</div>
<div class="second">
<p>lorem</p>
</div>
<div class="third">
<p>Lorem, ipsum dolor.</p>
</div>
</div>

错误:

未捕获的DOMException:未能在"Node"上执行"insertBefore":要插入新节点的节点不是的子节点此节点。

// First we find parent of elements
const parent = document.querySelector('.test');
// then create new div
var j = document.createElement('div');
// insert new div to parent
j.innerHTML = '<p>CreateElement example</p>'
parent.insertBefore(j, parent.childNodes[2]);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="script.js" defer></script>
</head>
<body>
<div class="test">
<div class="first">
<p>hello world</p>
</div>
<div class="second">
<p>lorem</p>
</div>
<div class="third">
<p>Lorem, ipsum dolor.</p>
</div>
</div>
</body>
</html>

最新更新