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