querySelector在搜索id" #b> a"时返回null,但getElementById返回正确的元素。发生了什么事?
var x = document.querySelector('#b>a');
console.log(x);
var y = document.getElementById("b>a");
console.log(y);

Name <input type="text" id="b>a">
&#13;
答案 0 :(得分:5)
>
字符在CSS选择器语法中有意义。您必须使用"#b\>a"
。
>
是&#34;直接孩子&#34;组合器,因此普通"#b>a"
选择一个<a>
元素作为元素的子元素,其ID为#34; b&#34;。
答案 1 :(得分:2)
您需要转义>
字符。请参阅下面的代码段
var x = document.querySelector('#b\\>a');
console.log(x);
var y = document.getElementById("b>a");
console.log(y);
Name <input type="text" id="b>a">
答案 2 :(得分:1)
按选择器查询将在字符之前查找类型,因此它将查找而不是文本a。
要使其工作,您需要使用
转义选择器var x = document.querySelector('#b\\>a');