Показать сообщение отдельно
  #2 (permalink)  
Старый 09.10.2011, 14:06
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Предположу что все же так задумано, потому что если 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 (Читай выше что селекторы оцениваются в конексте всего документа)
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 09.10.2011 в 14:20.
Ответить с цитированием