Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将addEventListener与所有HTML按钮、复选框、单选框、选择和href一起使用_Javascript_Html_Addeventlistener - Fatal编程技术网

Javascript 如何将addEventListener与所有HTML按钮、复选框、单选框、选择和href一起使用

Javascript 如何将addEventListener与所有HTML按钮、复选框、单选框、选择和href一起使用,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,我只想将侦听器添加到元素级别的HTML按钮、复选框、单选、选择和锚定标记(href),而不考虑元素ID或名称 也就是说,每当任何按钮、复选框、单选框、选择或锚定标记(href)在网页上单击时,我都希望听到单击事件。如何使用javascript实现这一点。有人能帮忙吗 如果要使用jQuery: $("button, [type='checkbox'], [type='radio'], select, [href]").each(function () { $(this).on("click

我只想将侦听器添加到元素级别的HTML按钮、复选框、单选、选择和锚定标记(href),而不考虑元素ID或名称


也就是说,每当任何按钮、复选框、单选框、选择或锚定标记(href)在网页上单击时,我都希望听到单击事件。如何使用javascript实现这一点。有人能帮忙吗

如果要使用jQuery:

$("button, [type='checkbox'], [type='radio'], select, [href]").each(function () {
    $(this).on("click", function () {
        // STUFF
    });
});
如果要使用普通JS:

var things = document.querySelectorAll("button, [type='checkbox'], [type='radio'], select, [href]");

for (var i = 0; i < things.length; i++) {
   things[i].addEventListener("click", function () {
       // STUFF
   });
}
var things=document.querySelectorAll(“按钮,[type='checkbox'],[type='radio'],选择,[href]”;
for(var i=0;i
本机javascript示例:

var all\u button=document.getElementsByTagName(“按钮”)
var all_radio=document.getElementsByTagName(“输入”)
var all_select=document.getElementsByTagName(“选择”)
函数单击(){
console.log(“本机”)
}
函数添加\单击\事件\到\ HTML \标记\数组(\数组){
对于(var i=0;i,您可以使用选择页面中所有可单击的元素:

document.querySelectorAll("input, button, a, select").forEach(function(el) {
  el.addEventListener("click", function() {
    console.log("clicked");
  });
});
演示:

document.querySelectorAll(“输入,按钮,a,选择”).forEach(函数(el){
el.addEventListener(“单击”,函数(){
控制台日志(“单击”);
});
});

沃尔沃汽车
萨博
梅赛德斯
奥迪
点击这个按钮
接受
拒绝
向我发送通知

href
不是通过
getElementsByTagName()的HTML元素循环
或将事件附加到
文档
中,然后检查元素类型。@Script47:能否给我一些示例代码@Script47:的可能副本,但它仅显示在标记上,但我希望选择、单选、复选框和按钮也显示相同的代码。而是多次创建相同的事件函数(对于每个元素),我希望只创建一次,然后将其分配到
addEventListener()
的第二个参数中。除了…JS足够智能,可以识别相同的函数,并且可以多次在内存中忽略创建它们-我不知道这一点。@masterpreenz:它适用于除[href]之外的所有元素。你能确认我原因吗?。
href
不是元素,而是元素
a
(锚定标记)的属性。用
a
替换
[href]
。你能用元素添加演示吗。