Javascript - Uncaught TypeError: невозможно прочитать свойство «длина» неопределенного

Итак, я пытаюсь сделать ОС в javascript, и да, я знаю, что это, скорее всего, будет в HTML, но я над чем-то работаю, поэтому у меня были некоторые проблемы с этим, особенно с этим простым маленьким крошечным кодом, я пробовал все с и без и пришел с двумя ошибками. Один я поместил в заголовок, а второй без использования длины и просто поставил число, я поставил 1, чтобы посмотреть, что произойдет. для второй ошибки это то же самое, что и эта ошибка, за исключением того, что без «длины» у нее есть «1» или другое число, которое я вставил в нее. Я также просмотрел переполнение стека и ничего не нашел.

Вот мой код:

var i;
var c = document.getElementsByClassName("app-slot").children;
for (i = 0; i < c.length; i++){
 if (c[i].tagName != "img"){
     c[i].style.display = "none";
 }
}

Может ли кто-нибудь помочь мне сказать мне, что может быть не так с этим... моя основная цель - определить, есть ли верхний элемент с именем класса "app-slot" и посмотреть, есть ли у него дочерний тег "img". Я знаю, что это работает с идентификаторами, а не с другими, я полностью застрял на этом. Это отличается от дублированного, который был помечен, потому что он использует дочернее свойство, и простое изменение его на «querySelectorAll» при сохранении дочернего свойства ничего не меняет и не дает мне пример, который я хотел, либо в одном из ответы.

getElementsByClassName возвращает коллекция элементов, и в нем нет свойства children
adiga 15.03.2019 18:37

Чем я могу заставить это работать, чем... не могли бы вы привести лучший пример, пожалуйста.

Jonathan J. Pecany 15.03.2019 18:52
children существует для каждого элемента внутри коллекции, возвращаемой document.getElementsByClassName("app-slot"). Таким образом, вложенный цикл for может работать в зависимости от того, что вы пытаетесь сделать: for (let element of document.getElementsByClassName("grid")){ for (i = 0; i < element.children.length; i++){ } }
adiga 15.03.2019 18:59

Если на вашей странице есть только один элемент с классом app-slot, то получите единственный элемент из коллекции, используя [0]: var c = document.getElementsByClassName("app-slot")[0].children;

adiga 15.03.2019 19:01

У меня их 14, и у меня есть 7, которые должны отображаться как встроенные, если это работает, если бы у меня был один, я бы просто использовал 0.

Jonathan J. Pecany 15.03.2019 19:14

Попробуйте вложенный цикл for, предложенный в предыдущем комментарии. Это похоже на массив объектов, каждый из которых имеет свойство массива children.

adiga 15.03.2019 19:16

Например, что вы имеете в виду, я все еще довольно новичок в этом, забыл упомянуть об этом, но мне действительно нужна помощь в этом, я попробовал это предложение, но не сработало, но не знаю, правильно ли я это сделал.

Jonathan J. Pecany 16.03.2019 01:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
35
0

Другие вопросы по теме