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

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

html中并沒有TBODY標簽,為什么程序測試后發現有這么一個標簽


<!DOCTYPE html>

<html>

?<head>

? <title> new document </title> ?

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

? <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'); ?

? ? ? ? ? ? ? document.write("我是tbody"+tbody.nodeName);

var tr = obj.parentNode.parentNode;

? ? ? ? ? ? ? document.write("我是tr"+tr.nodeName);

? ? ? ? ? ? ? ? ? ?

? ? ? ?// 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>學號</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>


其中下面刪除行這個函數,因為不理解原參考代碼中的

?function deleteRow(obj){

? ?var tbody = document.getElementById('table').lastChild; ?//這行獲取的是TALBE標簽的子節點,應該是<tr>標簽,為什么通過下列代碼測試時發現是TBODY標簽“document.write("我是tbody"+tbody.nodeName);”

var tr = obj.parentNode.parentNode;// ?obj參數應該是<a>標簽,那么tr這變量應該是<tr>標簽,那么,這到底是怎么回事,我哪里理解錯誤了??是真的隱藏了TBODY這樣一個標簽么?如果兩個語句獲取的都是<tr>標簽,那下面這個句子應該是錯誤的吧??

tbody.removeChild(tr);

}

? ? ? ? ? ? ? document.write("我是tr"+tr.nodeName);

? ? ? ? ? ? ? ? ? ?

? ? ? ?// tbody.removeChild(tr);

}



正在回答

2 回答

function?deleteRow(obj){
???var?tbody?=?document.getElementById('table');??
??????????????document.write("我是tbody"+tbody.nodeName);?//這段代碼中,你自己指定了table元素,
??//如果你寫代碼的時候,就寫了table標簽,然后接著寫tr這些。那么默認就是table中包含tbody再包含tr這些。
??//你也可以自己定義tbody里面可以包含的內容。


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

胖貓CAT 提問者

非常感謝!
2017-05-31 回復 有任何疑惑可以回復我~

如果您使用 thead、tfoot 以及 tbody 元素,您就必須使用全部的元素。它們的出現次序是:thead、tfoot、tbody,這樣瀏覽器就可以在收到所有數據前呈現頁腳了。您必須在 table 元素內部使用這些標簽也就是說你沒寫上去但是這三個字元素是默認存在的。所以("table").lastChild獲取的是最后一個子元素,也就是tbody

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

胖貓CAT 提問者

您的意思是說“thead、tfoot、tbody”這三個元素都是table下默認的子元素?而且tbody是最后一個?
2017-05-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

html中并沒有TBODY標簽,為什么程序測試后發現有這么一個標簽

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

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

幫助反饋 APP下載

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

公眾號

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