Я хочу, чтобы мой код показывал меню, добавив класс slactive
и изменив значение ввода из коллекции ddown
. У меня есть код, который не работает, поскольку консоль говорит, что в строке 9 или ddown[i]
, а также slitems[j]
- объекты, поскольку они не определены. Как это исправить?Undefined не является объектом в Dropdown
var slitems = document.getElementsByClassName('slitem');
ddown = document.getElementsByClassName('ddown');
for(i=0; i<ddown.length; i++) {
ddown[i].addEventListener('click', function(){document.getElementById('sl'+i).classList.add('slactive');valueChange()});
}
function valueChange(){
for(j=0;j<slitems.length;j++){
slitems[j].addEventListener('click', function(){
ddown[i].value = slitems[j].value;
document.getElementById('sl'+i).classList.remove('slactive');
});
}
}
P.S. slitems
представляет собой набор элементов меню.
Можете также взглянуть на это: [Создание замыканий в циклах: распространенная ошибка] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures#Creating_closures_in_loops_A_common_mistake) – Bogdan
@ Богдан Большое спасибо! – MaxelRus