刪除函數(shù)怎么理解
function del(obj) ? ? { ? ? ? ? var tr=obj.parentNode.parentNode; ? ? ? ? tr.parentNode.removeChild(tr); ? ? } 這段代碼中為什么有3個(gè)parentNode,不應(yīng)該是一個(gè)就轉(zhuǎn)到td了嗎
function del(obj) ? ? { ? ? ? ? var tr=obj.parentNode.parentNode; ? ? ? ? tr.parentNode.removeChild(tr); ? ? } 這段代碼中為什么有3個(gè)parentNode,不應(yīng)該是一個(gè)就轉(zhuǎn)到td了嗎
2020-01-01
舉報(bào)
2020-04-06
其他回答都說的挺好的了? 我就簡(jiǎn)單發(fā)表一下我的看法
1、首先看看刪除子集的表達(dá)式和用法:father.removeChild(child)
2、要實(shí)現(xiàn)本節(jié)內(nèi)容要求的行刪除,實(shí)則為刪除一個(gè)<tr>,需要以<table>為father,<tr>為child來執(zhí)行刪除子集
3、obj顯然只能是包含“刪除”二字的<a>標(biāo)簽,顯然<table>是<a>的三級(jí)父標(biāo)簽,<tr>是<a>的二級(jí)父標(biāo)簽,因此,你提問里的tr=obj.parentNode.parentNode;??
table=tr.parentNode=obj.parentNode.parentNode.parentNode;
(斜體字為你所問的3個(gè)parentNode來源)
2020-03-25
參考答案是漏了很多的,可以說,正確的寫法是:
<table>
????空白文本節(jié)點(diǎn)
????<tbody>
????????<tr>
????????????<td></td>
????????</tr>
????</tbody>
</table>
2020-03-25
html里,<table>下面就是<tr>
但是,在DOM中,默認(rèn)還是<table><tbody><tr>。也就是,tr的父級(jí)是tbody,這是默認(rèn)了的。
而至于,此例子中,table下面則有兩個(gè)看不見的子節(jié)點(diǎn),第一個(gè)是文本節(jié)點(diǎn),第二個(gè)才是tbody。所以,獲取tbody則用? .lastChild? ?或者? childNodes[1]
2020-03-15
? ? 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);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
2020-01-10
是的,但是這段代碼的意思是獲取tr的父節(jié)點(diǎn)table,再刪除tr.
obj 代表的 a標(biāo)簽,那么obj.parentNode是a外面的那個(gè)td標(biāo)簽,
obj.parentNode.parentNode是td外面的tr標(biāo)簽。
tr.parentNode獲取到的是tr外面的table標(biāo)簽,通過table標(biāo)簽的removeChild方法去刪除需要?jiǎng)h除那個(gè)tr標(biāo)簽。
我是這么理解的,供你參考。