我有一个这样的 html
<table>
<tr>
<td>
<img src="logo.png" onclick="getNextTableNode(this)">
</td>
</tr>
</table>
<table></table>
Run Code Online (Sandbox Code Playgroud)
我可以用js代码得到第一个tableNode
function getNextTableNode(imgNode)
{
tableNode1 = imgNode.parentNode.parentNode.parentNode;
}
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能得到下一个 tableNode?我不想使用 id 或 name。我试过了:
tableNode2 = tableNode1.nextSibling;
Run Code Online (Sandbox Code Playgroud)
但它没有用。有人可以帮忙吗?提前致谢
浏览器会<tbody>向 dom添加一个节点,无论 html 中是否包含一个节点。你需要一个额外的.parentNode来获取表格元素。
获得表格元素后,请使用nextElementSibling:
tableNode2 = tableNode1.nextElementSibling;
Run Code Online (Sandbox Code Playgroud)
使用nextSibling的旧版本浏览器的回退:
tableNode2 = tableNode1.nextElementSibling || tableNode1.nextSibling;
Run Code Online (Sandbox Code Playgroud)