[英]why dont work insertAfter function in javascript
but insertbefore work var a=document.querySelector("#div"); var y=document.createElement('p'); y.innerText='yazilarucun'; var c=document.querySelector(".p"); a.insertAfter(y,c);
<body> <div id='div'>yazi <p class='p'>p etiketi</p> </div> </body>
您的問題可以很容易地解決。 您可以通過在節點之后的節點之前添加節點來解決此問題
function insertAfter(newNode, existingNode) { existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling); } //Create Element var new_para = document.createElement('p'); new_para.innerText = 'yazilarucun'; //Add the element var old_para = document.querySelector(".p"); insertAfter(new_para, old_para)
<body> <div id='div'>yazi <p class='p'>p etiketi</p> </div> </body>
node.insertAfter() 不是內置的 javascript 方法,而是我們創建了一個用戶定義的 function。
<!DOCTYPE html>
<html>
<body>
<p id="point">Start</p>
<script>
var parentNode = document.getElementsByTagName("body")[0];
var refNode = document.getElementById("point");
function insertAfter(newNode, refNode){
refNode.parentNode.insertBefore(newNode, refNode.nextSibling);
}
var newNode = document.createElement("p");
var textnode = document.createTextNode("End");
newNode.appendChild(textnode);
insertAfter(newNode, refNode);
</script>
</body>
</html>
至少有3種方法可以做到這一點。
let targetNode = document.querySelector('#wrapper'),
placeNode = document.querySelector('#footer');
targetNode.after(placeNode);
targetNode.insertAdjacentElement('afterend', placeNode);
targetNode.parentNode.insertBefore(placeNode, targetNode.nextSibling);
這 3 個中的第一個是最新和最簡單的。 自 Chrome 54+、Firefox 49+、Edge 17+ 起已受支持。 不支持IE...
最后一個是最好的支持,最古老,最復雜的一個......
中間的在中間的某個地方……還是太難了……不夠直觀……
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.