[問題] insertBefore 方法
各位好
我的HTML如下
<div id="top">
<span id="middle">foo bar</span>
</div>
如果script如下 可以正確執行
-------------------------------------------------
var newNode = document.createElement("span");
var child = document.getElementById("middle");
var parent = child.parentNode;
if (parent != null) {
parent.insertBefore(newNode, child);
}
------------------------------------------------
如果是這樣 會出錯 錯誤訊息是
Uncaught NotFoundError: Failed to execute 'insertBefore' on 'Node':
The node before which the new node is to be inserted is not a child
of this node.
-----------------------------------------------------
var newNode = document.createElement("span");
var child = document.getElementById("middle");
var parent = document.getElementById("top");
//var parent = child.parentNode;
if (parent != null) {
parent.insertBefore(newNode, child);
}
-----------------------------------------------------
我的疑問是 在此例 底下這兩種寫法 應該都是抓到 div#top
但為什麼 前者會出錯呢?
var parent = document.getElementById("top");
var parent = child.parentNode;
謝謝
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1471397650.A.6DE.html
→
08/17 11:48, , 1F
08/17 11:48, 1F
→
08/17 21:13, , 2F
08/17 21:13, 2F
→
08/17 21:13, , 3F
08/17 21:13, 3F
→
08/18 10:59, , 4F
08/18 10:59, 4F
對 我放到html上 我找到問題了
拍謝 我搞了個烏龍 我在<div id="top">的上面 還有一個element的id也是top
所以document.getElementById("top")抓到的是那個element
insertBefore才會出錯 我一直沒注意到有兩個相同的id 太粗心了
謝謝大家 不好意思了
※ 編輯: kisha024 (140.127.81.14), 08/18/2016 11:30:23
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章