2013-06-18 65 views
0

我有一個<tbody>標記,我想通過JS達到。getElementsByTagName(「tbody」)不起作用。另類?

試圖獲得document.body.getElementsByTagName("tbody")document.getElementsByTagName("tbody")時出現錯誤。爲什麼?

Fiddle here

HTML

<tbody> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
</tr> 
</tbody> 
+1

是你確定當你執行代碼時DOM已經準備好了嗎?你是通過''標籤執行它的嗎?或者它是否放在''內容之後? –

+1

你會得到什麼錯誤? – Arjan

回答

3

使用

document.getElementsByTagName("tbody") 

而且你需要用tbodytable標籤。

See the demo.

+1

沒有用。 [jsfiddle.net/ScgrG/1/](http://jsfiddle.net/ScgrG/1/)不明白我缺少的東西。 – Rikard

+0

@Rikard:您錯過了'

'標籤。你沒有注意到這些數據沒有作爲表格佈置嗎?瀏覽器將忽略無效標籤。右鍵單擊分機並執行「檢查元素」。你將不會在那裏看到任何元素。 –

+0

@Rikard'tbody'必須留在桌子上。 – xdazz

3

首先,緊裹<table>裏面你的HTML。

其次,關於你的jsfiddle:

var tbodies = document.getElementsByTagName("tbody"); 
tbodies.style.display = "none"; 

這是行不通的。 getElementsByTagName返回元素列表。

如果你要定位的一,用途:

var tbodies = document.getElementsByTagName("tbody")[0]; 

,或者如果你想通過每一個元素目標所有<tbody>的,循環和應用樣式到每個:

​​