gpt4 book ai didi

javascript - getElementsByTagName ("table") - 以奇怪的方式获取 td

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:20 25 4
gpt4 key购买 nike

我有这个简单的例子

 <table border="1px">
<tr>
<td> </td>
<td> <input type="button" value="Click" onclick="insertText()"/> </td>
</tr>
</table>

我想获取(第一个)tr 元素的第一个 td 元素,我试过:

var td = document.getElementsByTagName("table")[0].children[0].children[0];

因为它是:

  • 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];

这是为什么,或者我错过了什么?

最佳答案

那是因为你忘记了 <tbody>元素,自动插入到 DOM 中。

你的 table 到底是什么样子的:

<table border="1px">
<tbody>
<tr>
<td> </td>
<td> <input type="button" value="Click" onclick="insertText()"/> </td>
</tr>
</tbody>
</table>

因此,为什么您需要向下挖掘三个级别的子级以定位 <td>你想要的元素。

旁注:如果您想了解更多关于 <tbody> 的原因元素自动注入(inject) <table>如果元素未声明,see this question and its answers .

关于javascript - getElementsByTagName ("table") - 以奇怪的方式获取 td,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17704985/

25 4 0