我有这样的HTML。
<span class="vm-video-side-notification-text-item">
<a href="/video_copynotice?v=4XrAMcXy0co" class=" yt-uix-sessionlink " data-url="/video_copynotice?v=4XrAMcXy0co" data-sessionlink="ei=DTr_V7jrJM2luAKd1JSgCQ">Includes copyrighted content</a>
</span>
我用
var x = document.querySelectorAll("span + a");
alert(x.length);
警报为“0”......我不知道为什么 我看到w3school说了
元素+元素
之后的所有
div + p
选择紧跟在<p>
元素<div>
元素
所以我尝试了span + a。任何人都可以纠正我的错误吗?
答案 0 :(得分:0)
你将元素与标签混为一谈。
虽然a
的开始标记位于span
的开始标记之后,但a
元素位于span
内} 元素。
因此,为了使您的示例有效,您可以
将"span > a"
内的“任意a
的查询选择器更改为span
var x = document.querySelectorAll("span > a");
alert(x.length);
或将html更改为a
元素之后的span
元素
<span class="vm-video-side-notification-text-item">
</span>
<a href="/video_copynotice?v=4XrAMcXy0co" class=" yt-uix-sessionlink " data-url="/video_copynotice?v=4XrAMcXy0co" data-sessionlink="ei=DTr_V7jrJM2luAKd1JSgCQ">Includes copyrighted content</a>
(...但不是两个!)