Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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中的函数?_Javascript_Html_Unobtrusive Javascript - Fatal编程技术网

低调的Javascript基本实现:如何将特定类的所有元素绑定到Javascript中的函数?

低调的Javascript基本实现:如何将特定类的所有元素绑定到Javascript中的函数?,javascript,html,unobtrusive-javascript,Javascript,Html,Unobtrusive Javascript,所以我正在阅读,目前我正在尝试一个基本的不引人注目的javascript实现,但我不知道我在哪里挣扎。通常情况下,这件事我会挣扎更长时间,直到我自己弄明白,但我开始有点时间紧张 我的HTML文档中有几个元素,其中有一个名为“RMButton”的类,我正试图让这个类中的所有元素调用一个名为“RemoveQBox”的函数(为了清楚起见,QBox是一个DIV元素,“RMButton”类的对象是从文档中删除DIV的小按钮)。RemoveQBox已经编写好了,当我使用内联JS调用它(例如:REMOVE)时

所以我正在阅读,目前我正在尝试一个基本的不引人注目的javascript实现,但我不知道我在哪里挣扎。通常情况下,这件事我会挣扎更长时间,直到我自己弄明白,但我开始有点时间紧张

我的HTML文档中有几个元素,其中有一个名为“RMButton”的类,我正试图让这个类中的所有元素调用一个名为“RemoveQBox”的函数(为了清楚起见,QBox是一个DIV元素,“RMButton”类的对象是从文档中删除DIV的小按钮)。RemoveQBox已经编写好了,当我使用内联JS调用它(例如:REMOVE)时,它可以正常工作,但由于某些原因,我在JS中的绑定并没有真正起作用。有人知道我错过了什么吗

我的Javascript文件顶部

var DBSetFields = [];
var NumQBoxes = 1;

window.onload = function() {
    RMNodeList = document.getElementsByClassName("RMButton");
    for (var i = 0; i < RMNodeList.length; ++i) {
        console.log(RMNodeList[i]);
        RMNodeList[i].onclick = RemoveQBox;

    }
};

控制台中有错误吗?代码看起来不错,我想在这里添加
var
var RMNodeList=document控制台中没有任何内容。。。RemoveQBox中还有一个console.log语句,让我知道函数是否被调用。。。事实并非如此。编辑:还添加了
var
。。。没有区别。
var
只是一个范围问题,它使变量成为函数的局部变量,而不是全局变量,与问题无关。这意味着未调用主函数,或者
getElementsByClassName(“RMButton”)
返回一个空列表对不起,我删除的注释有错误。我犯了一个错误。实际上正在调用window.onload。
    function RemoveQBox(e){
    console.log("Remove");
    var RemoveButton = this; //this == e.currentTarget
    console.log(RemoveButton);
    var QBox = RemoveButton.parentNode;
    QBox.remove();
    NumQBoxes -= 1;
}