我希望我的代碼通過添加slactive
類來顯示菜單並更改ddown
集合的輸入值。我有一些代碼,這是不工作的控制檯說,在第9行,也ddown[i]
,也沒有slitems[j]
是對象,因爲它們是未定義的。如何解決這個問題?未定義不是下拉對象中的對象
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