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

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

為什么使用了3次appendChild,結果卻只創建了1個子節點?

<!DOCTYPE html>

<html>

?<head>

? <title> new document </title> ?

? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> ??

? <script type="text/javascript">?

??

? ? ?

? ? ? // 編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;

? ? function append(){

? ? ?var newtr=document.createElement("tr");

? ? ?var newtd=document.createElement("td");

? ? ?newtd.innerHTML="table";

? ? ?newtr.appendChild(newtd);

? ? ?newtr.appendChild(newtd);

? ? ?newtr.appendChild(newtd);


? ? ?document.getElementsByTagName("table")[0].appendChild(newtr);

? ? ? ??

? ? }




? </script>?

?</head>?

?<body>?

? <table border="1" width="50%" id="table">

? <tr>

<th>學號</th>

<th>姓名</th>

<th>操作</th>

? </tr> ?


? <tr>

<td>xh001</td>

<td>王小明</td>

<td><a href="javascript:void();" onclick="remove(this)">刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->

? </tr>


? <tr>

<td>xh002</td>

<td>劉小芳</td>

<td><a href="javascript:void();" onclick="remove(this)">刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->

? </tr> ?


? </table>

? <input type="button" value="添加一行" onclick="append()" /> ? <!--在添加按鈕上添加點擊事件 ?-->

?</body>

</html>



如上,使用了3次appendChild,實際運行點擊時,卻只創建了1個子節點:

http://img1.sycdn.imooc.com//596bc46b0001549810380226.jpg



正在回答

6 回答

你三次添加的單元格都是同一個名字,怎么可能有用,就好比你元素屬性寫三次,那也只有一次有用,先創建三個不同的td再添加

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

每次引用對象時,其實都是調用對象的內存地址,所以在循環中對一個對象添加多次,其實都是添加的同一個對象的內存地址,實際對象的數量并沒有增加,就好比你對你女朋友連說六次愛你,不等于就有6個女朋友吧?所以必須在每次循環時都重新創建一個新的對象,這樣系統就會為這個新對象分配新的內存空間,然后再添加到父元素中才算是真正的添加。

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

我也是不明白這個誒,你現在明白了嗎?

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

我理解的是節點里面是已經包括了三個appendchild了,你說只創建了一個子節點是怎么看出來的?

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

tr的子節點是3個td,tr的的parentnode是table,是哪里不對呢?你的意思是為什么要重復寫三個appendChild?

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

吉夫 提問者

不是,我的意思是我使用了三次appendChild,但實際運行卻只創建了一個子節點而不是三個,覺得很不解
2017-07-17 回復 有任何疑惑可以回復我~

<tr>

<td>xh001</td>

<td>王小明</td>

<td><a href="jav

,你看看tr下面是不是有三欄,所以需要插入appendChild就是三個

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

吉夫 提問者

不是,我明白要添加三個子節點,源代碼中我也的確用了3次appendChild,但是實際運行時,卻只添加了一個子節點,十分不解
2017-07-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么使用了3次appendChild,結果卻只創建了1個子節點?

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

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

幫助反饋 APP下載

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

公眾號

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