Предположу что все же так задумано, потому что если
i вынести из дивки то он не будет найден.
Цитата:
|
Even though the method is invoked on an element, selectors are still evaluated in the context of the entire document.
|
Хотя метод вызывается элементом, селекторы по-прежнему оценивается в контексте всего документа.
http://www.w3.org/TR/selectors-api/
Сообщение от PeaceCoder
|
B= A.querySelectorAll('span i'); // тут должен быть массив из элемента .class=abc345, т.к. выборка идет из элемента, а не из документа.
|
Логика у querySelectorAll я как понимаю такова:
Вы в конечном итоге хотите получить элементы
i, но вы еще указали что у этих элементов должен быть родитель спан, а так же они должны являтся потомками элемента в котором ищите (в данном случае это
A).
Элемент с классом "abc345" будет найден так как он является потомком элемента span и потомком элемента в котором ищем.
А элемент с классом "abc123" тоже будет найден (хотя вы ожидаете что его быть не должно) так как он тоже подходит под условия. Он является потомком элемента в котором ищем, а так же у него один из родителей есть span (Читай выше что селекторы оцениваются в конексте всего документа)