Пустой элемент и getElementsByClassName - PullRequest
0 голосов

Я пытаюсь разобрать сайт, и у меня проблема. Когда я анализирую таблицу с пустым элементом

type = elements[i].getElementsByClassName("listing-item__type");

У меня есть

VM56462:7 Uncaught TypeError: Cannot read property 'innerText' of undefined
    at <anonymous>:7:25

Как это исправить? Можно ли проверить элемент на пустое?

Ответы [ 2 ]

1 голос
/ 29 июня 2019

Поскольку getElementsByClassName возвращает массив, вы не можете рассматривать массив как элемент DOM, вам нужно получить индекс и использовать

if (type[0] != undefined && type[0].innerText){
// add code here
}
0 голосов
/ 29 июня 2019

Не видя структуру HTML, вы можете проверить наличие элемента через:

if (type) {
   // "type" is not undefined
}

Обратите внимание, что ваш "тип" будет возвращать массив элементов (так как вы используете getElementsByClassName). Получите доступ к первому и убедитесь, что он правдив, прежде чем проверять .innerText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...