課程
/前端開發
/JavaScript
/JavaScript進階篇
為什么刪除不了第一行,點擊第一個刪除而把第二行給刪除了
2015-10-28
源自:JavaScript進階篇 9-22
正在回答
因為你錯誤使用了lastChild,導致每次調用deletetr()函數時都自動定位到table的最后一個子節。另外deletetr()函數的參數obj你根本沒使用,obj在這個函數里的意思表示<a>這個元素節點,所以建議自己把寫的代碼再捋一捋,看看每個節點對象分別是誰,附改進版。
function deletetr(obj){??????????? var node=obj.parentNode.parentNode;?????????? ??????????? node.parentNode.removeChild(node);? //這里不是多次一舉,node是需要刪除的對象,通過parentNode先找到父輩,然后刪除。??????? }
<!--對應onclick要加 this 關鍵詞,不然函數不知道調用的對象-->
??? <tr>?? ??? ?<td>xh001</td>?? ??? ?<td>王小明</td>?? ??? ?<td><a href="javascript:;" onclick="deletetr(this)">刪除</a></td>?? <!--在刪除按鈕上添加點擊事件? -->?? ? </tr>
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答代碼錯誤了
2 回答代碼錯誤嗎
1 回答代碼錯誤嗎
2 回答代碼錯誤問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-10-29
因為你錯誤使用了lastChild,導致每次調用deletetr()函數時都自動定位到table的最后一個子節。另外deletetr()函數的參數obj你根本沒使用,obj在這個函數里的意思表示<a>這個元素節點,所以建議自己把寫的代碼再捋一捋,看看每個節點對象分別是誰,附改進版。
function deletetr(obj){
??????????? var node=obj.parentNode.parentNode;??????????
??????????? node.parentNode.removeChild(node);? //這里不是多次一舉,node是需要刪除的對象,通過parentNode先找到父輩,然后刪除。
??????? }
<!--對應onclick要加 this 關鍵詞,不然函數不知道調用的對象-->
??? <tr>
?? ??? ?<td>xh001</td>
?? ??? ?<td>王小明</td>
?? ??? ?<td><a href="javascript:;" onclick="deletetr(this)">刪除</a></td>?? <!--在刪除按鈕上添加點擊事件? -->
?? ? </tr>