Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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获取元素_Javascript - Fatal编程技术网

基于类名单击的Javascript获取元素

基于类名单击的Javascript获取元素,javascript,Javascript,首先,我本应该在JSFIDLE中创建这个示例,但它们是只读模式 我想获取基于类单击的特定元素 var button = document.getElementsByClassName("mybutton"); button.onclick = function() { //how do I reference the specific button that was clicked? }; 按钮1 按钮2 请不要回答jQuery;这不是这里的选项。事件处理程序中的第一个参数将是对事

首先,我本应该在JSFIDLE中创建这个示例,但它们是只读模式

我想获取基于类单击的特定元素

var button = document.getElementsByClassName("mybutton");
button.onclick = function() {
    //how do I reference the specific button that was clicked?
};

按钮1
按钮2

请不要回答jQuery;这不是这里的选项。

事件处理程序中的第一个参数将是对事件的引用

var button = document.getElementByClassName("mybutton");
button.onclick = function(e) {
    //e.Target is a reference to your button
};

它不是
document.getElementByClassName
,而是
document.getElementsByClassName

看到区别了吗

这很容易被忽视:

document.getElementByClassName
document.getElementsByClassName
                   ^
前者不存在,除非你定义它,后者只适用于现代浏览器
getElementsByClassName
将返回一个节点列表,您需要迭代该列表以将事件侦听器附加到每个节点

var i,
    l,
    buttons,
    button;

function clickHandler(e) {
    console.log(this);//the button that was clicked on
}
buttons = document.getElementsByClassName('mybutton');
for (i = 0, l = buttons.length; i < l; i++) {
    button = buttons[i];
    button.onclick = clickHandler;
}
vari,
L
按钮,
按钮
函数clickHandler(e){
console.log(this);//单击的按钮
}
buttons=document.getElementsByClassName('mybutton');
对于(i=0,l=buttons.length;i
我纠正了我的拼写错误-谢谢你指出这一点。对我来说似乎不起作用;我猜是因为创建了一个数组?
var i,
    l,
    buttons,
    button;

function clickHandler(e) {
    console.log(this);//the button that was clicked on
}
buttons = document.getElementsByClassName('mybutton');
for (i = 0, l = buttons.length; i < l; i++) {
    button = buttons[i];
    button.onclick = clickHandler;
}