Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужен совет новичку. Поиск элемента в DOM (https://javascript.ru/forum/misc/65414-nuzhen-sovet-novichku-poisk-ehlementa-v-dom.html)

AlexandrT 17.10.2016 14:28

Нужен совет новичку. Поиск элемента в DOM
 
Необходим скрипт, который позволит найти на странице кнопку/ссылку и нажать ее.

Попробовал варианты:
var span = document.getElementById('menu4')
var menu4 = span.getElementsByTagName('*')
menu4[1].click()

и
var elems = document.getElementsByTagName('a')
elems[1].click()


Оба они работают, но как-то странно... Если запустить сразу после загрузки страницы, получаю ответ VM1492:2 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null или во втором случае VM1526:2 Uncaught TypeError: Cannot read property 'click' of undefined.

Но если сначала выбрать нужный элемент через указатель из консоли разработчика (хром) или вручную в той же консоли раскрыть все теги вплоть до необходимого - все работает как нужно.

P.S. Необходимые элементы находятся довольно глубоко в странице. Но страница константная, поэтому подходит вариант спарсить все теги "a" и выбрать необходимый, elems[1].click()

Спасибо.

Rasy 17.10.2016 15:30

Цитата:

Сообщение от AlexandrT
Если запустить сразу после загрузки страницы

Уверен что есть функция обратного вызова после загрузки страницы?)

warren buffet 17.10.2016 18:29

Проверку добавь

var span = document.getElementById('menu4');
if(span)
     var menu4 = span.getElementsByTagName('a')
else
    alert('Нифига не нашлось меню');


А вот так можно за раз

var menus = document.querySelectorAll('#menu4 a');


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