Javascript 选择添加了onClick侦听器(js函数)的所有元素

Javascript 选择添加了onClick侦听器(js函数)的所有元素,javascript,jquery,html,Javascript,Jquery,Html,我想选择所有添加了javascript函数作为onClick侦听器的html元素 如果他们在html中添加了onclick作为属性,我可以选择它们 使用$(“[onclick]”,但稍后可以使用javascript添加侦听器 无论侦听器是如何添加的,是否可以选择所有元素?返回示例中的两个元素 (函数(){ 函数修改(){ 警报(“印加联合国礼炮”); } var t2=document.getElementById(“按钮2”); t2.addEventListener(“单击”,修改,错误)

我想选择所有添加了javascript函数作为onClick侦听器的html元素

如果他们在html中添加了onclick作为属性,我可以选择它们 使用
$(“[onclick]”
,但稍后可以使用javascript添加侦听器

无论侦听器是如何添加的,是否可以选择所有元素?返回示例中的两个元素

(函数(){
函数修改(){
警报(“印加联合国礼炮”);
}
var t2=document.getElementById(“按钮2”);
t2.addEventListener(“单击”,修改,错误);
log($(“[onclick]”);
}())

这实际上取决于事件如何附加到javascript中的dom元素。可以使用jQuery或其他库或纯javascript添加它

如果您想知道,如果使用jQuery附加事件,那么可以这样做

var clickEvents = $(element).data("events").click;
$.each(clickEvents, function(key, event) {
    alert(event.handler)
});
因此,除了内联
onclick
事件处理程序外,通过javascript附加的事件将为您提供该dom元素上事件处理程序的总数

我认为我们无法检查附加了
addEventListener
attachEvent(特定于IE)

演示


如果您使用的是更高版本的jQuery,那么您必须使用
$。\u数据(元素,“事件”)
如下面的注释中提到的@Frogmouth。

为什么不让您的函数将属性为
onClick
的所有元素放在一个数组中,然后向它们发出警报。这样,每次单击时,您都会使用
onClick
重新检查HTML中的元素,并填充数组。因为my.js将在其他网站上运行,我无法控制这是什么意思?你的javascript将为这些元素在另一个网站上爬行?你可以说爬行。这是安装在另一个网站上的服务。
$(元素)。数据(“事件”)
不受欢迎,因为版本
1.8
使用
$。\u数据(“元素”,“事件”)
。@wolff-我想我们无法检查附加了
addEventListener
attachEvent(即特定的)