Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выборка элементов querySelectorAll (https://javascript.ru/forum/events/71107-vyborka-ehlementov-queryselectorall.html)

рони 27.10.2017 16:55

Цитата:

Сообщение от Nlk
[].slice.call

создание массива, методом slice из списка элементов (лишнее звено, можно сразу [].forEach.call)
Цитата:

Сообщение от Nlk
forEach

цикл по созданному массиву

Nlk 30.10.2017 15:08

рони,
Спасибо, скажите а элементы классов .dropdown и .nav-link оказываются в одном массиве?

Nexus 30.10.2017 15:18

Nlk,
document.querySelectorAll('.dropdown .nav-link')

Если вопрос по этой выборке, то "querySelectorAll" вернет коллекцию элементов с классом "nav-link", которые являются детьми для элементов с классом "dropdown".
Родители при таком селекте в коллекцию не попадут.

Nlk 30.10.2017 15:33

Nexus,
Теперь всё ясно, а я голову ломал. Огромнейшее Вам спасибо!

Nlk 30.10.2017 15:40

Выпадающее меню работу которого вы мне сейчас объяснили https://codepen.io/ryanmorr/pen/LVzYmx

Nlk 31.10.2017 11:16

А можно в дальнейшем ещё вопросы в этой ветке задавать, без прямой связи с темой?

В данном отрывке кода не могу понять как метод contains используется? Ведь он призван проверять присутствие класса в элементе!?
container.addEventListener('click', function(e){
    if(isShowingSidebar() && main.contains(e.target)){
        e.preventDefault();
        hideSidebar();
    }
}, true);

Nexus 31.10.2017 11:19

Nlk,
https://learn.javascript.ru/compare-document-position

Nlk 31.10.2017 12:15

Nexus,
Спасибо за ссылку, ознакомился.
Но не могу понять, метод contains необходим для проверки вложенности элементов. А в данном случае используется проверка на событие, так?

Nexus 31.10.2017 12:20

Nlk, нет.
Цитата:

Сообщение от learn.javascript.ru
event.target – это исходный элемент, на котором произошло событие, в процессе всплытия он неизменен.

https://learn.javascript.ru/event-bu...-event-target

Nlk 31.10.2017 12:49

Nexus,
извините за мою тупость, но я не понимаю что в данной строке кода происходит? Что e.target событие понятно.
main.contains(e.target)


Часовой пояс GMT +3, время: 14:00.