Javascript querySelectorAll并选择特定子级

Javascript querySelectorAll并选择特定子级,javascript,css,Javascript,Css,假设我有下面的HTML HTML 它只返回Test5,而不是两个容器中的第二个子容器 有什么建议吗?谢谢 使用:第n个子项选择器: var secondChilds=document.queryselectoral(“.container p:nth child(2)”); console.log(secondChilds) 测试1 测试5 测试3 测试7 使用:第n个子项选择器: var secondChilds=document.queryselectoral(“.container

假设我有下面的HTML

HTML

它只返回Test5,而不是两个容器中的第二个子容器


有什么建议吗?谢谢

使用
:第n个子项
选择器:

var secondChilds=document.queryselectoral(“.container p:nth child(2)”);
console.log(secondChilds)

测试1

测试5

测试3

测试7


使用
:第n个子项
选择器:

var secondChilds=document.queryselectoral(“.container p:nth child(2)”);
console.log(secondChilds)

测试1

测试5

测试3

测试7


另一种使用ES6的方法。也许有点过于复杂了,但效果很好

let elems=document.getElementsByClassName('container');
数组.from(elems).forEach(函数(v){
v、 children[1].style.color='blue';
})

测试1

测试5

测试3

测试7


另一种使用ES6的方法。也许有点过于复杂了,但效果很好

let elems=document.getElementsByClassName('container');
数组.from(elems).forEach(函数(v){
v、 children[1].style.color='blue';
})

测试1

测试5

测试3

测试7


添加
:第n个子项(2)
(或示例中的
:最后一个子项
)即可。这些选择器与CSS使用的选择器相同,因此如果您熟悉这些选择器,那么您将知道可以做些什么提供了四个DOM元素的列表<代码>容器[1]
容器[3]
将是您想要的元素,但这不是一个可靠的解决方案。谢谢大家阅读
:第n个孩子(2)
(或
:您示例中的最后一个孩子
)将完成此操作。这些选择器与CSS使用的选择器相同,因此如果您熟悉这些选择器,那么您将知道可以做些什么提供了四个DOM元素的列表<代码>容器[1]
容器[3]
将是您想要的元素,但这不是一个可靠的解决方案。谢谢大家您不需要ES6。您可以简单地执行
[].forEach.call(elems,function(v){…
,或者只对
循环使用简单的
。@DenysSéguret我只喜欢ES6(:您不需要ES6。您可以简单地执行
[].forEach.call(elems,function(v){…
,或者只对
循环使用简单的
。@DenysSéguret我只喜欢ES6(:
<div class="container">
  <p>Test1</p>
  <p>Test5</p>
</div>

<div class="container">
  <p>Test3</p>
  <p>Test7</p>
</div>
var container = document.querySelectorAll(".container p");
console.log(container[1]);