获取具有 ID 的父元素的子元素的子元素
Getting child element of a child element of a parent with ID
我需要使用 javascript 获取 id = "part1" 的元素子元素的子级。所以从本质上讲,我想进入 span 元素第 3 个表的第 3 行,但我似乎无法让它工作:(
<span id = "part1">
<table> </table>
<table> </table>
<table>
<tr> ... </tr>
<tr> ... </tr>
<tr> ... </tr> (get this row)
</table>
</span>
Non-jQuery 解决方案
var span = document.getElementById('part1');
var row = span.getElementsByTagName('table')[2].childNodes[2];
j查询解决方案
使用:eq
选择器:
var $row = $('#part1 > table:eq(2) > tr:eq(2)');
使用:nth-child
选择器:
var $row = $('#part1 > table:nth-child(3) > tr:nth-child(3)');
:eq
和:nth-child
选择器选择属于其父级的第 n 个子元素的所有元素。但是,:eq
遵循"0 索引"计数,nth-child
遵循"1 索引"。
请注意,:eq
和nth:child
选择器的工作方式不同。在这种情况下,它会做同样的事情,因为您只有 table
元素 span#part1
.
来自jQuery文档:
:nth-child(n) 伪类很容易与 :eq(n) 混淆,甚至 尽管这两者可能会导致截然不同的匹配元素。 使用 :nth-child(n),所有子项都被计算在内,无论它们是什么 是,并且仅当指定的元素与 附加到伪类的选择器。仅使用 :eq(n) 选择器 附属于伪类被计算在内,不限于子类 任何其他元素,并且选择 (n+1) 个元素(n 从 0 开始)。
参考:
:nth-child() 选择器
试试这个
this.parentNode().getElementsByTagName("table")[2].childNodes[2];
我更喜欢使用.find()
而不是嘶嘶声引擎。像这样:
var TheThirdRow = $('#part1').find('table')
.eq(2)
.find('tr')
.eq(2);
相关文章:
- 选择不带选择器的元素,仅使用元素ID
- 从元素id中获取值,而不是从javascript中的名称中获取值
- 如何将第二个元素id注入到网站元素中
- 将 JavaScript 元素 ID 传递给 PHP 或 Form Variable
- 如何在 javascript 中将表单中的元素 id 值作为数组传递
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 如何从 jQuery 中的 ajax 函数中的类访问元素 ID
- JavaScript获取多个已知元素ID
- 使用ng repeat时元素ID重复
- 在使用onblur进行输入评估时,是否可以获得单击对象的元素id
- JQuery通过变量标识元素id:多个表行
- 当元素ID包含美元符号时,Javascript中的getElementByid.当ID包含美元符号时,
- 我得到未捕获的类型错误:无法读取属性'选项'即使定义了元素id,也为null
- 元素id未被接受为函数参数
- 使用jquery获取类元素id
- 如何在没有任何元素id的情况下检索表中的文本内容
- jquery按类确定元素id
- 获取元素ID并传递到函数中
- 使用jquery获取元素id
- JavaScript文档.getElementById(“id”)和元素id属性