Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   TypeError: Cannot call method 'onclick' of null (https://javascript.ru/forum/css-html-browser/43960-typeerror-cannot-call-method-%27onclick%27-null.html)

allelujah 28.12.2013 08:50

TypeError: Cannot call method 'onclick' of null
 
Не срабатывает клик по кнопке при отправке кода через консоль CHROME в CMS Drupal.
Код:

document.getElementById("cedit-field-products-und-actions-ief-add").onclick();

Ошибка:
TypeError: Cannot call method 'onclick' of null

Вариация кода:
document.getElementsByName("ief-60-add").click();

В этом случае ошибка выглядит следующим образом:
TypeError: Object #<NodeList> has no method 'click'

И вот такой вариант:
document.getElementById("*[id$='edit-field-products-und-actions-ief-add']").click();
TypeError: Cannot call method 'click' of null

PS. Гуглеж по ключевым словам ошибки мало помог. Хочу понять в чем проблема.

danik.js 28.12.2013 11:39

Цитата:

Сообщение от allelujah
document.getElementById("cedit-field-products-und-actions-ief-add").onclick();

Это значит что элемента с указанным id на странице не существует!
Цитата:

Сообщение от allelujah
document.getElementsByName("ief-60-add").click();

getElementsByName возвращает NodeList, то есть список нод, о чем и сказано в ошибке, че перевести слабо чтоли? И вобще, все методы get***sBy*** возвращают NodeList. Поэтому, чтобы обратиться к первому результату, нужно писать document.getElementsByName("ief-60-add")[0].click()

Цитата:

Сообщение от allelujah
document.getElementById("*[id$='edit-field-products-und-actions-ief-add']").click();

В качестве агрумента ты передаешь селектор, хотя этот элемент ждет чистый id. Так что это неправильная запись. Используй метод document.querySelector() - вот он ждет селектор, да.

allelujah 28.12.2013 13:53

спасибо, продвинулся дальше

document.querySelector('#edit-field-products-und-actions-ief-add').click();
undefined
Кнопка не нажимается

Продолжаю поиски

allelujah 28.12.2013 14:03

Решение помогли реализовать через
jQuery('#edit-field-products-und-actions-ief-add').mousedown();


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