-1

この配列を for ループでループすると、どういうわけか undefined in になります

updateField(this.value, vehicles[i]+"_brand"

その間

$("#"+vehicles[i]+"_year").change(function(){

配列の正しい値を取得します。どうすればこれを解決できますか?

var vehicles = new Array();
    vehicles[0] = "auto";
    vehicles[1] = "truck";
    vehicles[2] = "motor";

for(var i = 0;i < vehicles.length;i++){
    $("#"+vehicles[i]+"_year").change(function(){
       updateField(this.value, vehicles[i]+"_brand", 1, 2, this.parentNode.id), resetBelow(0,'auto'), show('auto_brand');
    });
}
4

2 に答える 2

1

変更イベントが発生する時刻がvehicles[i]再度評価され、最後の値が になりますi

変化する

vehicles[i]+"_brand"

this.id.split('_')[0]+"_brand"
于 2013-02-05T09:27:54.797 に答える
0

セミコロンがあるべき場所にカンマがあるようです:

updateField(this.value, vehicles[i]+"_brand", 1, 2, this.parentNode.id); resetBelow(0,'auto'); show('auto_brand');

...または、updateField()関数にさらに多くのパラメーターがあり、関数を時期尚早に閉じただけですか?

于 2013-02-05T09:29:54.383 に答える