Big*_*air 4 html javascript html5 html-table
我有这个简单的例子
<table border="1px">
<tr>
<td> </td>
<td> <input type="button" value="Click" onclick="insertText()"/> </td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我想获得(第一个)tr元素的第一个td元素,我试过:
var td = document.getElementsByTagName("table")[0].children[0].children[0];
Run Code Online (Sandbox Code Playgroud)
因为它是:
var td = document.getElementsByTagName("table")[0]
对于表元素本身children[0]
对于tr元素children[0]
再次为第一个TD元素 这就是我的想法,但显然这会让我返回tr元素而只添加另一个.children[0]
让我获得td元素.
var td = document.getElementsByTagName("table")[0].children[0].children[0].children[0];
Run Code Online (Sandbox Code Playgroud)
为什么这样,或者我错过了什么?
dsg*_*fin 10
那是因为你忘记了<tbody>
自动插入DOM 的元素.
你的桌子看起来像什么:
<table border="1px">
<tbody>
<tr>
<td> </td>
<td> <input type="button" value="Click" onclick="insertText()"/> </td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
因此,为什么你需要挖掘三个级别的孩子来定位<td>
你想要的元素.
旁注:如果您想了解更多有关元素在未声明时<tbody>
自动注入<table>
元素的原因,请参阅此问题及其答案.
归档时间: |
|
查看次数: |
1023 次 |
最近记录: |