大家好,我是js初学者,所以我有一个问题,代码:
var formDate=$("#formStudentInfo").serializeArray();
var inputArray=[];
for (var i=0;i<formDate.length;i++) {
var element=$('#form_'+formDate[i]['name']);
inputArray.push(element);
console.log(inputArray)
inputArray[i].on('click',function(){
console.log(inputArray[0]['name']);
})
}
我有一个表单名称是#formStudentInfo,这个表单中有两个输入,输入名称是“form_name”和“form_userName”,当我点击输入时如何获取输入名称?谢谢大家
最佳答案
您不应在异步回调处理程序中使用循环计数器变量。
当单击元素时,i
的值不会相同。因为到那时它总是等于 formDate.length
因为当单击该元素时该循环已经运行。
替换
inputArray[i].on('click',function(){
console.log(inputArray[0]['name']);
})
与
element.on('click',function(){
console.log($(this).attr('name')); //using the reference to current element using $(this)
})
或者简单地
element.click(function(){ //directly using the click method rather than delegation
console.log($(this).attr('name')); //using the reference to current element using $(this)
})
关于javascript - jquery中如何监听事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342633/