<select
いくつかの要素を動的に生成したい。既存のものをコピーして、名前と onchange-Event のみを変更します。これが私の問題です。すべて<select>
に独自のIDがあります。onChange-Event が発生すると、要素の値と ID に応答する必要があります。JavaScript クロージャーを正確に定義する方法がわかりません。「this.value」で試してみましたが、明らかにこれは機能しません...この例はすでに見つけましたが、まったく機能しませんでした:/
JavaScript:
var i = 0;
var selectArray = [];
function addSelector(){
var container = document.getElementById("check0");
selectArray[i] = document.getElementsByName("select0")[0].cloneNode(true);
selectArray[i].name = 'select'+i;
selectArray[i].onchange = function(v, i) {
return function() {
changeType(v, i)
}
}(this.value, i);
container.appendChild(selectArray[i]);
}
function changeType(selected, i) {
switch (selected) {
case 'One':
alert(selected+' , '+i);
break;
case 'Two':
alert(selected+' , '+i);
break;
case 'Three':
alert(selected+' , '+i);
break;
case 'Four':
alert(selected+' , '+i);
break;
case 'Five':
alert(selected+' , '+i);
break;
}
}
(HTMLも投稿しようとしましたが、何らかの理由でこれを行うことができませんでした;))