Javascript 使用[selector]属性时获取函数上jquery的已更改元素?

Javascript 使用[selector]属性时获取函数上jquery的已更改元素?,javascript,jquery,Javascript,Jquery,我在上使用jquery来检测表单中元素的更改事件。我使用函数的selector属性缩小选择范围,如下所示: $("#myFormId,#myFormId2").on("change", ":input.classA, :input.classB, textarea" ,function() { $(this).attr("id"); }); 更新-详细说明问题 如何在两个表单中的任意一个表单中更改输入字段: 更改的元素id(我打赌这可以通过设置comments函数(eventObj)中所

我在上使用jquery
来检测表单中元素的更改事件。我使用函数的selector属性缩小选择范围,如下所示:

$("#myFormId,#myFormId2").on("change", ":input.classA, :input.classB, textarea" ,function()
{
   $(this).attr("id");
});
更新-详细说明问题

如何在两个表单中的任意一个表单中更改输入字段:

  • 更改的元素id(我打赌这可以通过设置comments
    函数(eventObj)
    中所述的事件返回对象来实现)

  • 事件本身中已更改元素的表单id,不带 在DOM树中向上传播


  • 我终于把这个包好了:

    在我的环境中,我们使用的是jquery1.6.4,它不支持jquery
    on
    方法。
    上的
    方法是作为自定义添加的,但即使在使用选择器时,其行为仍与
    live
    相同,没有委托事件绑定

    这就是为什么我在使用
    $(this.attr(“Id”)时首先得到表单Id的原因

    作为对问题中第2个问题的回答,由于我们在
    方法上使用了
    的委托事件绑定模式(在1.7+版本中),
    $(此)
    将始终返回第一个目标,即直接具有change
    event.target
    的元素(表单字段)


    要获取主选择器,即
    FormId
    ,我们将使用
    $(event.delegateTarget)
    获取主选择器,如图所示。

    回调的第一个参数应该是您正在查找的元素:
    函数(eventObject){…}
    ,cf。它确实返回了更改后的元素的ID。这对我来说很有效,签出此小提琴:我无法复制您的问题()。您是否可以自行显示该问题?另外,“…this关键字是对传递事件的元素的引用;对于直接绑定的事件,它是附加事件的元素;对于委派的事件,它是匹配选择器的元素。(请注意,如果事件是从子元素冒泡而来,则这可能不等于event.target。)