JavaScript不会触发多个类元素

时间:2014-07-20 01:32:16

标签: javascript html

我在为页面上的选定HTML表格启动JavaScript代码时遇到了一些麻烦。我们的想法是让所有带有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函数如下:

1 个答案:

答案 0 :(得分:5)

请注意,document.getElementsByClassName会返回一组元素,其中包含所有给定的类名。您应该确定您的styleTablehoverColorChange函数会迭代返回的集合(通过for循环或Array.filter)。

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

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

ADDENDUM:

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

  • 变量(例如tranchors)在声明的范围内使用。
  • 使用==而不是===
  • 缺少分号。
  • for循环中定义的函数。

修复这些问题,并再次运行。