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

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

刪除函數怎么理解

function del(obj) ? ? { ? ? ? ? var tr=obj.parentNode.parentNode; ? ? ? ? tr.parentNode.removeChild(tr); ? ? } 這段代碼中為什么有3個parentNode,不應該是一個就轉到td了嗎

正在回答

5 回答

其他回答都說的挺好的了? 我就簡單發表一下我的看法

1、首先看看刪除子集的表達式和用法:father.removeChild(child)

2、要實現本節內容要求的行刪除,實則為刪除一個<tr>,需要以<table>為father,<tr>為child來執行刪除子集

3、obj顯然只能是包含“刪除”二字的<a>標簽,顯然<table>是<a>的三級父標簽,<tr>是<a>的二級父標簽,因此,你提問里的tr=obj.parentNode.parentNode;??

table=tr.parentNode=obj.parentNode.parentNode.parentNode;

(斜體字為你所問的3個parentNode來源)

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

參考答案是漏了很多的,可以說,正確的寫法是:

<table>

????空白文本節點

????<tbody>

????????<tr>

????????????<td></td>

????????</tr>

????</tbody>

</table>

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

走馬勿觀花

DOM中如上面所示,所以雖然html不寫,但是DOM中確實存在
2020-03-25 回復 有任何疑惑可以回復我~

html里,<table>下面就是<tr>

但是,在DOM中,默認還是<table><tbody><tr>。也就是,tr的父級是tbody,這是默認了的。

而至于,此例子中,table下面則有兩個看不見的子節點,第一個是文本節點,第二個才是tbody。所以,獲取tbody則用? .lastChild? ?或者? childNodes[1]

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

? ? del();

? ? ?function del(){

? ? ? ? ? ? var getA = document.getElementsByTagName("a");? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? for(var i=getA.length-1;i>=0;i--){

? ? ? ? ? ? var te=getA[i].parentNode.parentNode.parentNode;

? ? ? ? ? ? ? ? getA[i].onclick = function(){

? ? ? ? ? ? ? ? ? ? te.removeChild(this.parentNode.parentNode);

// this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }


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

是的,但是這段代碼的意思是獲取tr的父節點table,再刪除tr.

obj 代表的 a標簽,那么obj.parentNode是a外面的那個td標簽,

obj.parentNode.parentNode是td外面的tr標簽。

tr.parentNode獲取到的是tr外面的table標簽,通過table標簽的removeChild方法去刪除需要刪除那個tr標簽。

我是這么理解的,供你參考。

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

走馬勿觀花

tr的父節點,DOM中始終默認是tbody
2020-03-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

刪除函數怎么理解

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

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

幫助反饋 APP下載

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

公眾號

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