javascript - jquery中如何监听事件?

标签 javascript jquery

大家好,我是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/

相关文章:

javascript - 为什么定义的属性中的 "this"范围错误?

javascript - Google Script - 侧边栏按钮不断打开一个新标签

Javascript GC 应用现有对象

javascript - 获取动态 div 的最后一个 ID

javascript - 顺序 promise 的问题

javascript - 我怎样才能让一个div在点击时展开,一次只打开一个?

javascript - 如何从同一页面上的多个选择下拉列表中捕获值

javascript - 将 2 位变量数字拆分为两个输入字段

jQuery tag-它只允许可用的标签

javascript - 循环数据值并将其分配为段落上的类