刪除函數怎么理解
function del(obj) ? ? { ? ? ? ? var tr=obj.parentNode.parentNode; ? ? ? ? tr.parentNode.removeChild(tr); ? ? } 這段代碼中為什么有3個parentNode,不應該是一個就轉到td了嗎
function del(obj) ? ? { ? ? ? ? var tr=obj.parentNode.parentNode; ? ? ? ? tr.parentNode.removeChild(tr); ? ? } 這段代碼中為什么有3個parentNode,不應該是一個就轉到td了嗎
2020-01-01
舉報
2020-04-06
其他回答都說的挺好的了? 我就簡單發表一下我的看法
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來源)
2020-03-25
參考答案是漏了很多的,可以說,正確的寫法是:
<table>
????空白文本節點
????<tbody>
????????<tr>
????????????<td></td>
????????</tr>
????</tbody>
</table>
2020-03-25
html里,<table>下面就是<tr>
但是,在DOM中,默認還是<table><tbody><tr>。也就是,tr的父級是tbody,這是默認了的。
而至于,此例子中,table下面則有兩個看不見的子節點,第一個是文本節點,第二個才是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的父節點table,再刪除tr.
obj 代表的 a標簽,那么obj.parentNode是a外面的那個td標簽,
obj.parentNode.parentNode是td外面的tr標簽。
tr.parentNode獲取到的是tr外面的table標簽,通過table標簽的removeChild方法去刪除需要刪除那個tr標簽。
我是這么理解的,供你參考。