課程
/前端開發
/JavaScript
/JavaScript進階篇
var?tr?=?document.getElementsByTagName("tr"); document.write(tr.length); //輸出0
2018-03-27
源自:JavaScript進階篇 9-22
正在回答
發現我剛剛那個回答沒有說到點上,重答一遍。
題目給的代碼,script部分是在head中的,先于body的內容執行,所以在執行這兩句代碼的時候,頁面中根本就沒有表格,于是輸出的長度為0.
改進方法為:在<input type="button" value="添加一行" ?/>之后,寫上以下代碼,
<script type="text/javascript">
? ? ? ?var tr = document.getElementsByTagName("tr");
? ? ? ? ? ? document.write(tr.length);
?</script>?
這樣,在訪問tr的length屬性時,頁面中就有三行了,于是輸出結果為3.
你可以觀察你的代碼寫在head和寫在body里面的時候,數字0和數字3的輸出位置,0是表格之前輸出的,而3是在表格之后輸出的。
79351 提問者
?var table = document.getElementById("table");
document.write(table.childNodes.length);
我用這個,可以順利輸出。
var?tr?=?document.getElementsByTagName("br") ?; ?你里面寫的是br 不是tr ?當然是0啦
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title></title> <script?type="text/javascript"> var?tr?=?document.getElementsByTagName("br") document.write(tr.length) </script> </head> <body> <table> <tr><td>1</td><td>2</td><td>3</td></tr> <tr><td>1</td><td>2</td><td>3</td></tr> <tr><td>1</td><td>2</td><td>3</td></tr> </table> </body> </html> //謝謝回答,不過我這個為什么輸出是0啊
不好意思,弄錯了,我試了,你這個代碼是可以正確輸出tr的length
function getLength(){?? ??? ??? ?var tr = document.getElementsByTagName("tr");?? ??? ??? ?document.write(tr.length);?? ??? ?}
var
tr?=?document.getElementsByTagName(
"tr"
);
document.write(tr[0].length);
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答var table = document.getElementById("table").lastChild 獲取到的是最后一個tr嗎?
1 回答tr的爹是tbody,tbody的爹是table?那么我再table下加一個tr,怎么是tabel.appendChild(tr),不是tbody.appendChild(tr)?
2 回答為什么最后tr加到table里面的時候加到table[0]才有效啊
3 回答為什么不能通過ID獲得table 從而刪除里面的tr結點?
2 回答為什么資料答案中要獲取tbody是ID為table的lastChild,而不是直接獲取table,最后一個子元素是什么?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-04-05
發現我剛剛那個回答沒有說到點上,重答一遍。
題目給的代碼,script部分是在head中的,先于body的內容執行,所以在執行這兩句代碼的時候,頁面中根本就沒有表格,于是輸出的長度為0.
改進方法為:在<input type="button" value="添加一行" ?/>之后,寫上以下代碼,
<script type="text/javascript">
? ? ? ?var tr = document.getElementsByTagName("tr");
? ? ? ? ? ? document.write(tr.length);
?</script>?
這樣,在訪問tr的length屬性時,頁面中就有三行了,于是輸出結果為3.
你可以觀察你的代碼寫在head和寫在body里面的時候,數字0和數字3的輸出位置,0是表格之前輸出的,而3是在表格之后輸出的。
2018-04-05
?var table = document.getElementById("table");
document.write(table.childNodes.length);
我用這個,可以順利輸出。
2018-03-28
var?tr?=?document.getElementsByTagName("br") ?; ?你里面寫的是br 不是tr ?當然是0啦
2018-03-28
2018-03-28
不好意思,弄錯了,我試了,你這個代碼是可以正確輸出tr的length
function getLength(){
?? ??? ??? ?var tr = document.getElementsByTagName("tr");
?? ??? ??? ?document.write(tr.length);
?? ??? ?}
2018-03-28
var
?tr?=?document.getElementsByTagName(
"tr"
);
document.write(tr[0].length);