Javascript 无法读取属性';增补列表器';未定义的 函数分配(id){ 返回文档.getElementById(id); } 变量b=['p'、'q'、'r'、's'、't'、'u'、'v']; 变量a=['fname'、'lname'、'email'、'password'、'r_password'、'g_m'、“g_f”]; 对于(i=0;i

Javascript 无法读取属性';增补列表器';未定义的 函数分配(id){ 返回文档.getElementById(id); } 变量b=['p'、'q'、'r'、's'、't'、'u'、'v']; 变量a=['fname'、'lname'、'email'、'password'、'r_password'、'g_m'、“g_f”]; 对于(i=0;i,javascript,Javascript,您希望x[i]返回您刚才存储的DOM元素,但您将DOM元素存储在x[b[i],而不是x[i]。请保持一致,错误就会消失 但是,代码仍然无法工作,因为您陷入了关闭陷阱:当单击发生时,事件处理程序将使用i,与创建处理程序时不同。因此,所有处理程序都将i视为a.length,并失败 我通常使用生成器函数来处理: function assign(id){ return document.getElementById(id) ; } var b = ['p','q','r','s','t','u

您希望
x[i]
返回您刚才存储的DOM元素,但您将DOM元素存储在
x[b[i]
,而不是
x[i]
。请保持一致,错误就会消失

但是,代码仍然无法工作,因为您陷入了关闭陷阱:当单击发生时,事件处理程序将使用
i
,与创建处理程序时不同。因此,所有处理程序都将
i
视为
a.length
,并失败

我通常使用生成器函数来处理:

  function assign(id){

 return document.getElementById(id) ;
} 
var b = ['p','q','r','s','t','u','v'];
var a = ['fname','lname','email','password','r_password','g_m',"g_f"] ; 

 for (i=0;i<a.length;i++) {
        var x = {} ;
     x[b[i]] = assign(a[i]) ;
      x[i].addEventListener('click', function() { alert(x[i].value) ;} ,false) ;

 }  
事件#当前目标

for (i = 0; i < a.length; i++) {
    var x = {};
    x[b[i]] = asign(a[i]);
    x[b[i]].addEventListener('click', function() {
        alert(this.value);
    }, false);
}
for(i=0;i
您希望
x[i]
返回刚才存储的DOM元素,但您将DOM元素存储在
x[b[i]
处,而不是
x[i]
。请保持一致,错误就会消失

但是,代码仍然无法工作,因为您陷入了关闭陷阱:当单击发生时,事件处理程序将使用
i
,与创建处理程序时不同。因此,所有处理程序都将
i
视为
a.length
,并失败

我通常使用生成器函数来处理:

  function assign(id){

 return document.getElementById(id) ;
} 
var b = ['p','q','r','s','t','u','v'];
var a = ['fname','lname','email','password','r_password','g_m',"g_f"] ; 

 for (i=0;i<a.length;i++) {
        var x = {} ;
     x[b[i]] = assign(a[i]) ;
      x[i].addEventListener('click', function() { alert(x[i].value) ;} ,false) ;

 }  
事件#当前目标

for (i = 0; i < a.length; i++) {
    var x = {};
    x[b[i]] = asign(a[i]);
    x[b[i]].addEventListener('click', function() {
        alert(this.value);
    }, false);
}
for(i=0;i
函数asign(id){
返回文档.getElementById(id);
} 
变量a=['a','b','c'];
变量b=['fname','lname','email'];
对于(i=0;i
函数asign(id){
返回文档.getElementById(id);
} 
变量a=['a','b','c'];
变量b=['fname','lname','email'];

对于(i=0;显示的istill错误无法读取Null的属性'addEventListener',显示的仍然错误无法读取Null的属性'addEventListener',您的问题是什么?@Amsterl我想在数组a中用变量数组b分配ID的addEventListener。您的问题是什么?@Amsterl我想在数组a中用变量变量数组b分配ID的addEventListener可分配数组b。