JavaScript不会在多个类元素上触发

JavaScript not firing on multiple class elements

本文关键字:元素 JavaScript      更新时间:2023-09-26

我遇到了一些麻烦,让JavaScript代码在页面上选择HTML表。我们的想法是让所有带有stripe_table类的表通过几个JavaScript函数进行样式化。

JavaScript在HTML中触发:

<body onload=searchPage()>

searchPage函数查找所有带有stripe_table类的元素,并将它们传递给一些样式函数。

function searchPage() {
    var table = document.getElementsByClassName('stripe_table');
    //Pass the table nodelist to the styling functions.
    styleTable(table);
    hoverColorChange(table);
}

目前页面上的两个表格中只有一个是样式化的。

styleTable函数如下:

hoverColorChange函数如下:

注意,document.getElementsByClassName返回一组元素,这些元素具有所有给定的类名。您应该确定您的styleTablehoverColorChange函数遍历返回的集合(通过for循环或Array.filter)。

http://devdocs.io/dom/document.getelementsbyclassname

我建议您将变量重命名为复数,顺便说一下,以更清楚地表明它是一个集合(tables而不是table)。

附录:

感谢您发布完整的代码。将它粘贴到启用了JSLinter的Sublime Text 3中,我得到了几个警告,包括:

  • 变量(如tranchors)在其声明的作用域之外被使用。
  • 使用==而不是===
  • 缺少分号。
  • for循环中定义的函数。

修复这些,然后再运行一次。