Репозиторий GitHub, который я связал, не будет использоваться для каких-либо других вопросов (он не будет изменен, кроме как для помощи в этом вопросе .... ЭТО ИСПОЛЬЗУЕТСЯ ТОЛЬКО ДЛЯ ЭТОГО ВОПРОСА
Примечание. Я провел свое исследование и считаю, что мой код должен работать
Хорошо, так что если вам требуется остальноемоего кода, чтобы сделать правильное суждение об этом, не стесняйтесь перейти к: Мой репозиторий Github , который будет использоваться только для этого 1 вопроса . В репозитории GitHub, естьтакже является файлом CSS, но с ним проблем нет, просто включите его, чтобы вы могли видеть ВСЕ код.
Да, я знаю, что многие люди на этом сайте ненравится, когда люди включают ссылки «GitHub», однако мне легче объяснить, если у меня не весь код сидит здесь, чтобы создать беспорядок (легче, если я смогу сузить, какой код дает мне ошибку
Хорошо, вот этот цикл «для»:
var dropdown = document.getElementsByClassName("dropdown-btn");
var i;
for (i = 0; i < dropdown.length; i++) { //this is not getting called for some reason
dropdown[i].addEventListener("click", something());
alert("Please work");
}
на самом деле не работает.Когда я помещаю "alert" над циклом for, например:
var dropdown = document.getElementsByClassName("dropdown-btn");
var i;
alert("This works");
for (i = 0; i < dropdown.length; i++) { //this is not getting called for some reason
dropdown[i].addEventListener("click", something());
alert("This does not work");
}
Предупреждение вызывается, как только вызывается метод, в котором находится цикл for.Я думаю, чтобы объяснить мой вопрос, что-то не так с моим циклом «для»?(Это работает в другом файле .html, поэтому я не уверен, почему он не работает в моей текущей рабочей области.)
ОБНОВЛЕНИЕ (18 февраля 2019 г.): Хорошо, я нашелчто вызывает ошибку.
Для человека, который прокомментировал и предложил использовать «console.log (dropdown.length);», это вызвало неожиданную ошибку:
function something(){
this.classList.toggle("active");
var dropdownContent = this.nextElementSibling;
if (dropdownContent.style.display === "block") {
dropdownContent.style.display = "none";
} else {
dropdownContent.style.display = "block";
}
}
Как я и говорил, это работает в другом файле, но по какой-то причине он говорит, что в "this.classList.toggle (" active); ", toggle" не определено. Является ли это предполагаемым определенный в этом файле, или это похоже на «функцию» по умолчанию? Благодаря всем моим исследованиям и знаниям языка JavaScript я уверен, что это «функция» по умолчанию, иесли кто-то не докажет, что я неправ, я не понимаю, почему это не работает.