[英]Getting child element of a child element of a parent with ID
我需要使用JavaScript将id =“ part1”的元素的子元素作为子元素。 所以从本质上讲,我想到达span元素的第三张表的第三行,但是我似乎无法使其起作用:(
<span id = "part1">
<table> </table>
<table> </table>
<table>
<tr> ... </tr>
<tr> ... </tr>
<tr> ... </tr> (get this row)
</table>
</span>
var span = document.getElementById('part1');
var row = span.getElementsByTagName('table')[2].childNodes[2];
使用: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
选择器的工作方式不同。 在这种情况下,它会做同样的事情,因为您在span#part1
内只有table
元素。
从jQuery文档中:
:nth-child(n)伪类很容易与:eq(n)混淆,即使这两个类可能导致匹配元素截然不同。 使用:nth-child(n),将计算所有子项,无论它们是什么,并且仅当指定元素与附加到伪类的选择器匹配时才选择指定元素。 使用:eq(n)时,仅对连接到伪类的选择器进行计数,而不仅限于其他元素的子级,并且选择第(n + 1)个选择器(n从0开始)。
参考:
尝试这个
this.parentNode().getElementsByTagName("table")[2].childNodes[2];
我更喜欢使用.find()
而不是嘶嘶声引擎。 像这样:
var TheThirdRow = $('#part1').find('table')
.eq(2)
.find('tr')
.eq(2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.