第二部分应该是你的带有内文“Target Element”的div元素。由于:nth-child()
选择器是根据元素在其父元素所有同级子元素中的位置来选取元素,所以选取方式需要稍作调整。
我已经尝试了以下方法:
var desiredElement = selected.querySelector("div:nth-child(1) > div:nth-child(1)");
但这种方法并未达到预期效果,原因可能在于:nth-child()
CSS伪类在此场景下并不对应于该元素在父元素子元素列表中的索引位置。
换句话说,通过querySelector试图获取的这个div元素可能选取方式有误:var desiredElement = selected.querySelector("div:nth-child(1) > div:nth-child(1)")
;
当处理其他DOM元素的子元素时,更简洁的方法可能是这样的:
var selected = document.querySelector(".main-box");
var desiredElement2 = document.querySelector(".main-box :nth-child(1)");
var desiredElement3 = document.querySelector(".main-box :nth-child(1) > div:nth-child(1)");
console.log(selected);
console.log(desiredElement2);
console.log(desiredElement3);
以上代码示例中,HTML结构如下:
<div class="main-box">
<div>
<div>目标元素</div>
<div></div>
<div></div>
</div>
<div>
<div></div>
<div></div>
<div></div>
</div>
<div>
<div></div>
<div></div>
<div></div>
</div>
</div>