第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么要加lastChild呢?

var tbody = document.getElementById('table').lastChild;

正在回答

5 回答

我也很不明白。查了一下,有個方法倒是值得推薦。那就是看看<table>標(biāo)簽下的子節(jié)點到底是什么。

以下就是獲得<table>標(biāo)簽下所有的子節(jié)點,然后遍歷輸出子節(jié)點的nodeName,nodeValue,nodeType。發(fā)現(xiàn),<table>的子節(jié)點有兩個,一個是“#text”,一個是“TBODY”。

“#text”的類型為3(文本節(jié)點),值是空的,所以應(yīng)該是<table>和<tbody>之間的空格或者換行部分。

"text"之后的節(jié)點就是<Tbody>,而<tr><td><th>這些都是在<tbody>里的,所以要刪除表格中的某一行,就得先取得<tbody>節(jié)點,也就是<table>的lastChild這個節(jié)點了。


57a040b50001ccc104820155.jpg

57a040b500017f2001530057.jpg

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕函數(shù)9642432 提問者

非常感謝!
2016-08-03 回復(fù) 有任何疑惑可以回復(fù)我~

靠,我也想了好久才貌似弄明白了:

因為table標(biāo)簽的childNodes不是tr而是tbody, 這里雖然省略了tbody沒有寫, 但是它還是實際存在的

3 回復(fù) 有任何疑惑可以回復(fù)我~

獲取最后的子節(jié)點

0 回復(fù) 有任何疑惑可以回復(fù)我~


<!DOCTYPE html>
<html>
?<head>
? <title> new document </title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>? ?
? <script type="text/javascript"> ?
?? ? window.onload = function(){
?? ??? ?Highlight();
?? ? } ?
?? ? function addOne(obj){
?? ???? var tbody = document.getElementById('table').lastChild; ?
?? ??? ?var tr = document.createElement('tr'); ?
?? ??? ?
?? ??? ? var td = document.createElement("td");
?? ??? ? td.innerHTML = "<input type='text'/>";
?? ??? ? tr.appendChild(td);
?? ??? ?
?? ??? ? td = document.createElement("td");?? ?
?? ??? ? td.innerHTML = "<input type='text'/>";
?? ??? ? tr.appendChild(td);
?? ??? ?
?? ??? ? td = document.createElement("td");?? ?
?? ??? ? td.innerHTML = "<a href='javascript:;' onclick='deleteRow(this)'>刪除</a>";
?? ??? ? tr.appendChild(td);? ?
?? ??? ?
?? ??? ? tbody.appendChild(tr);? ?
?? ??? ?Highlight();
? ??? ? }

?? ? function deleteRow(obj){
?? ???? var tbody = document.getElementById('table').lastChild; ?
?? ??? ?var tr = obj.parentNode.parentNode;
?? ??? ? tbody.removeChild(tr);
?? ? }
?? ? function Highlight(){
?? ??? ?var tbody = document.getElementById('table').lastChild;?? ?
?? ??? ?trs = tbody.getElementsByTagName('tr');? ?
?? ??? ?for(var i =1;i<trs.length;i++){
?? ??? ??? ?trs[i].onmouseover = function(){
?? ??? ??? ??? ?this.style.backgroundColor ="#f2f2f2";
?? ??? ??? ?}
?? ??? ??? ?trs[i].onmouseout = function(){
?? ??? ??? ??? ?this.style.backgroundColor ="#fff";
?? ??? ??? ?}
?? ??? ?} ?
?? ? }

? </script>
?</head>
?<body>
?? ??? <table border="1" width="50%" id="table">
?? ??? <tr>
?? ??? ?<th>學(xué)號</th>
?? ??? ?<th>姓名</th>
?? ??? ?<th>操作</th>
?? ??? </tr> ?

?? ??? <tr>
?? ??? ?<td>xh001</td>
?? ??? ?<td>王小明</td>
?? ??? ?<td><a href="javascript:;" onclick="deleteRow(this)">刪除</a></td>
?? ??? </tr>

?? ??? <tr>
?? ??? ?<td>xh002</td>
?? ??? ?<td>劉小芳</td>
?? ??? ?<td><a href="javascript:;" onclick="deleteRow(this)">刪除</a></td>
?? ??? </tr> ?

?? ??? </table>
?? ??? <input type="button" value="添加一行" onclick="addOne()" />
?</body>
</html>

0 回復(fù) 有任何疑惑可以回復(fù)我~

document.getElementById('table')獲取到的是<table>標(biāo)簽,而tbody是<table>的子標(biāo)簽

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕函數(shù)9642432 提問者

要獲得的不就是<table>標(biāo)簽嗎
2016-07-24 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么要加lastChild呢?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號