Javascript 带参数的Js调用函数

Javascript 带参数的Js调用函数,javascript,html,Javascript,Html,我已经创建了4个按钮,每个按钮都有自己的id,我有一个显示给定元素id的函数。所以我想把它应用到所有这4个按钮上。我做错了什么 点击 点击 点击 点击 函数show_id(元素){ 警报(element.id) } 对于(i=0;i!=document.getElementsByTagName('button');i++){ target=document.getElementsByTagName('button')[i] target.onclick=show\u id(目标) } 您可以

我已经创建了4个按钮,每个按钮都有自己的id,我有一个显示给定元素id的函数。所以我想把它应用到所有这4个按钮上。我做错了什么


点击
点击
点击
点击
函数show_id(元素){
警报(element.id)
}
对于(i=0;i!=document.getElementsByTagName('button');i++){
target=document.getElementsByTagName('button')[i]
target.onclick=show\u id(目标)
}

您可以获取按钮元素的长度并遍历按钮

我建议为类似的内容创建一个类,因此不要只使用所有按钮,而是将您希望参与其中的按钮设置为相同的

这里有一个方法可以做到这一点


点击
点击
点击
点击
函数show_id(){
警报(this.id)
}
设btns=document.queryselectoral('.btnWithID');
对于(i=0;i
按以下步骤操作-

函数show_id(){
警报(this.id)
}
var buttons=document.queryselectoral(“按钮”);
对于(变量i=0;i
点击
点击
点击

单击
在现代JS中,您可以这样做:

for(document.queryselectoral的const按钮('button'))
button.addEventListener('click',function(){console.log(this.id)})
点击
点击
点击

单击
确定,更新要与
querySelectorAll
forEach
一起使用的代码,可能有助于您理解

document.querySelectorAll('button').forEach((button)=>{
addEventListener('click',function(){
console.log(this.id);
});
});
点击
点击
点击


单击
我认为使用class而不是id会更好。这会有什么不同吗?你可能是指
I=document.getElementsByTagName('button')。长度
。目前,您正在将一个数字与一个HTMLCollection进行比较,可能会创建一个无限循环,只会被它在循环中创建的错误停止。我已经更改了它,现在它们都会提醒最后一个按钮id!等等,你想让按下的按钮发出警报吗?当我运行它时,它会提醒所有的类,但当我单击它们时,什么也没有显示。抱歉,它将应用于所有的4个按钮。我有点误导了。我现在已经更新了我的答案,有人已经写了相同的答案,但无论如何,谢谢。而且我认为不需要一个类,你只需要
querySelectorAll('button')
getElementByTagName('button')
可能你不想为网站上的每个按钮调用该函数,只为特定数量的按钮。这就是我建议使用类的原因。是否需要在函数之后写入(元素)?@badr,不,不是必需的。我已经删除了它。我想知道如何使用带有“onclick”属性参数的函数。我真的建议您停止使用基于索引的循环、
var
关键字(除非您确切知道为什么要在
const
let
)以及
元素.onevent
-属性。使用提供
元素的DOM API。addEventListener(eventName,handlerFunction)
@connexo,同意!为了解决所面临的问题,我试图坚持海报上发布的原始代码。这是有道理的,顺便说一句,我在过去3年中没有使用任何基于索引的for循环,我每天都作为专业人员进行web开发。我建议您深入研究
forEach
for…of
循环。我会这样做的,感谢您的帮助使用内联事件侦听器是非常糟糕的编码实践,请不要向已经通过noob编码阶段的人建议这样做。我想在“onclick”中使用带有参数的函数,这就是我想知道的方法