querySelector возвращает null при поиске идентификатора "#b> a", но 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">
Символ >
имеет смысл в синтаксисе селектора CSS. Вам нужно будет использовать "#b\>a"
.
The >
является комбинатором "непосредственного ребенка", поэтому обычный "#b>a"
выбирает элемент <a>
который является дочерним элементом вашего элемента с идентификатором "b".
Вам нужно избежать символа >
. См. Фрагмент ниже
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">
Запрос по селектору будет искать типы перед символами, поэтому он будет искать вместо текста a.
Чтобы заставить это работать, вам нужно будет избежать выбора, используя
var x = document.querySelector('#b\\>a');