Javascript 获取ID为的父元素的子元素的子元素

Javascript 获取ID为的父元素的子元素的子元素,javascript,children,Javascript,Children,我需要使用javascript访问id=“part1”的元素的子元素的子元素的子元素。因此,本质上,我想进入跨度元素第三个表的第三行,但我似乎无法让它工作:( ... ... …(获取这一行) 非jQuery解决方案 jQuery解决方案 使用:eq选择器: var $row = $('#part1 > table:eq(2) > tr:eq(2)'); var $row = $('#part1 > table:nth-child(3) > tr:nth-ch

我需要使用javascript访问id=“part1”的元素的子元素的子元素的子元素。因此,本质上,我想进入跨度元素第三个表的第三行,但我似乎无法让它工作:(


...  
...  
…(获取这一行)
非jQuery解决方案 jQuery解决方案 使用
:eq
选择器:

var $row = $('#part1 > table:eq(2) > tr:eq(2)');
var $row = $('#part1 > table:nth-child(3) > tr:nth-child(3)');
使用
:第n个子项
选择器:

var $row = $('#part1 > table:eq(2) > tr:eq(2)');
var $row = $('#part1 > table:nth-child(3) > tr:nth-child(3)');
:eq
第n个子项
选择器选择父项的第n个子项的所有元素。但是
:eq
在“0索引”计数之后,而
第n个子项
在“1索引”之后

请注意,
:eq
n:child
选择器的工作方式不同。在这种情况下,它也会这样做,因为在
span\part1
中只有
table
元素

来自jQuery文档:

:nth child(n)伪类很容易与:eq(n)混淆,甚至 尽管这两种方法可能会产生截然不同的匹配元素。 使用:n个子项(n),所有子项都将被计数,无论它们是什么 是,并且仅当指定的元素与 附加到伪类的选择器。带有:eq(n)仅选择器 附加到伪类的已计数,但不限于 任何其他元素,并选择第(n+1)个元素(n是基于0的)

参考资料:

试试这个

this.parentNode().getElementsByTagName("table")[2].childNodes[2];
我更喜欢使用
.find()
而不是sizzle引擎。类似这样的:

var TheThirdRow = $('#part1').find('table')
                             .eq(2)
                             .find('tr')
                             .eq(2);

谢谢你-你能不能快速解释一下eq的用法-让我把你的答案放到上下文中:)谢谢:)我刚刚遇到一个错误,我的JQUERY库没有链接到我的网站-所以我会开始破解我刚才看到你的评论:)非常感谢!如果我想在子节点方面再深入一层,我会说“row.childNodes[#]”?非Jquery单行:var row=document.querySelector(“#part1>table:nth child(3)>tr:nth child(3)”,您的偏好有什么原因吗?我发现()更有效?@numeverest:是的,任何时候你有一个表达式$(SomeSelector),它都需要先用Sizzle引擎计算,以便jQuery知道使用哪个元素。如果在选择器$('#SomeID')中以ID开头的元素,它将跳过所有初始计算,性能测试将显示这一点。