亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

deleteRow(obj)函數,問題

function deleteRow(obj){

? ? ? ? var tbody = document.getElementById('table').lastChild; ? ?

? ? ? ? var tr = obj.parentNode.parentNode;

? ? tbody.removeChild(tr); ? ?

? ? ?}

? ? ? ? var tbody = document.getElementById('table').lastChild; ? ?修改為? ? ? ? var tbody = document.getElementById('table'); ?原有的兩行不能刪除,為什么??

正在回答

4 回答

是的,樓上的同學正解。表的結構應該是table->tbody->tr->td這樣的順序,細節大概是這樣,每個表有兩個兒子節點,大兒子是表頭,小兒子是tbody(可惜很重要很關鍵起承上啟下作用的小兒子tbody在老師的講義里沒提,造成了我們做題時的困惑),而我們看到的所有行也就是所有記錄都是tbody生的兒子,也就是table的孫子。當樓主你去掉lastChild時,變量tbody(注意這里老師起的變量名tbody其實已經說明了一切)就不是真正的tbody而是table了,只有父節點才能刪除子節點,table是行記錄的爺爺,怎么能刪掉孫子呢?所以這個lastChild(小兒子)屬性是絕對不能刪掉的

1 回復 有任何疑惑可以回復我~

明白了 ? 你看下你去掉.lastChild以后你去掉的是在<tbody>外面的行 你可以審查元素看下 ?<tbody>沒有顯示出來但是是table的下一級元素

0 回復 有任何疑惑可以回復我~

我也遇到了同樣的問題 ?我就覺得不應該寫.lastChild ? ? 可是答案里有 ?然后也不能刪除原來的兩行 ?希望樓下大牛解答

0 回復 有任何疑惑可以回復我~

首先,每一行都有一個刪除按鈕,所以只需要刪除本行即可,不需要刪除table元素的最后一個節點。然后看你的tbody現在指的是table元素最后一個tr節點,tr節點怎么能夠移除同是兄弟節點的tr元素呢?我把你的代碼編譯了一下,系統提示我移除的不是其子節點,具體愿意我也不太清楚,希望能有朋友幫忙解答一下。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

deleteRow(obj)函數,問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號