簡體   English   中英

為什么不工作在 javascript 中插入 function 之后

[英]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>

檢查: https://www.wikimass.com/js/node-insertafter

至少有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM