当我用for循环循环这个数组时,它在某种程度上给了我未定义的
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');
});
}
答案 0 :(得分:1)
将再次评估更改事件被触发的时间vehicles[i]
,您将获得i
的最后一个值。
更改
vehicles[i]+"_brand"
到
this.id.split('_')[0]+"_brand"
答案 1 :(得分:0)
看起来你有逗号分号应该是我的分号:
updateField(this.value, vehicles[i]+"_brand", 1, 2, this.parentNode.id); resetBelow(0,'auto'); show('auto_brand');
...或者你的updateField()
函数可能有更多参数而你只是过早地关闭了这个函数?