我在为页面上的选定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函数如下:
答案 0 :(得分:5)
请注意,document.getElementsByClassName
会返回一组元素,其中包含所有给定的类名。您应该确定您的styleTable
和hoverColorChange
函数会迭代返回的集合(通过for
循环或Array.filter
)。
http://devdocs.io/dom/document.getelementsbyclassname
顺便说一下,我建议您将变量重命名为复数,以便更清楚地表明它是一个集合(tables
而不是table
)。
ADDENDUM:
感谢您发布完整的代码。将其粘贴到启用了JSLinter的Sublime Text 3中,我收到了几个警告,包括:
tr
和anchors
)在声明的范围内使用。==
而不是===
。for
循环中定义的函数。 修复这些问题,并再次运行。