求教大神刪除函數三種表述的區別
// 創建刪除函數
? ? ?function del(tr){
? ? ? ? ?var del = tr.parentNode.parentNode;
? ? ? ? ?var tb = document.getElementById("table");
? ? ? ? ?tb.removeChild(del);??
? ? ?}
? ? /* function del(tr){
? ? ? ? ?var del = tr.parentNode.parentNode
? ? ? ? ?del.parentNode.removeChild(del);?
? ? ?}*/
第一種表述運行報錯,第二種可以,document.getElementById("table")跟?del.parentNode是有什么區別呢?
另外,官方的代碼是這樣寫的:
function deleteRow(obj){
var tbody = document.getElementById('table').lastChild;
var tr = obj.parentNode.parentNode;
tbody.removeChild(tr);
怎么也弄不明白定義tbody后面為何要加lastChild,他應該是tr的父節點才對??!
2019-02-18
終于弄明白了,其實table下面隱藏tbody節點,不寫出來系統也會默認有,這樣所有問題都弄明白了
2019-02-17
你第一種在onclick綁定函數時,參數要寫this,指向當前的a元素,你方法寫得沒問題。
del.parentNode就等于table元素。意思a元素的父元素(td)的父元素(tr)的父元素(table)
官方代碼我沒看,不過單純看你這一段確實是錯的。