無法刪除節(jié)點(diǎn)
點(diǎn)擊刪除 控制臺(tái)報(bào)錯(cuò)Cannot read property 'parentNode' of undefined at del
代碼如下
<script type="text/javascript">
window.onload = function() {
var tr = document.getElementsByTagName("tr");
for (var i = 0; i < tr.length; i++) {
tr[i].onmouseover = function() {
this.style.backgroundColor = '#f2f2f2';
}
tr[i].onmouseout = function() {
this.style.backgroundColor = '#fff';
}
}
} //1. 鼠標(biāo)移到不同行上時(shí)背景色改為色值為 #f2f2f2,移開鼠標(biāo)時(shí)則恢復(fù)為原背景色 #fff
var num = 2;
function add() {
num++;
var tr = document.createElement("tr");
var xh = document.createElement("td");
var xm = document.createElement("td");
var del = document.createElement("td");
xh.innerHTML = "xh00" + num;
xm.innerHTML = "<input value='請(qǐng)輸入姓名'/>"; //?
del.innerHTML = "<a href='javascript:del(this)'>刪除</a>";
var table = document.getElementById("table");
table.appendChild(tr);
tr.appendChild(xh);
tr.appendChild(xm);
tr.appendChild(del);
//插入節(jié)點(diǎn)
var tr = document.getElementsByTagName("tr");
for (var i = 0; i < tr.length; i++) {
tr[i].onmouseover = function() {
this.style.backgroundColor = '#f2f2f2';
}
tr[i].onmouseout = function() {
this.style.backgroundColor = '#fff';
}
}
}
function del(obj){
? ? ? ? ? ? var table = obj.parentNode.parentNode.parentNode;
var tr = obj.parentNode.parentNode;
table.removeChild(tr);
? ? ? ? }
</script>
調(diào)用函數(shù)用的<a href="javascript:del(this);">刪除</a>
我的理解是 obj是a標(biāo)簽 obj.parentNode是td
?obj.parentNode.parentNode是tr
obj.parentNode.parentNode.parentNode是table
要?jiǎng)h除table中的tr就是table.removeChild(tr);
2020-03-23
我運(yùn)行的結(jié)果是正確的,可能你函數(shù)調(diào)用那里有問題,這個(gè)函數(shù)應(yīng)該沒問題。