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