我一直在
TypeError:document.getElementsByTagName(...)。className未定义
与此相关的是什么,我真的不明白。
function test(){
if ( document.getElementsByTagName("body").className.match(/(?:^|\s)test(?!\S)/) ){
document.getElementsByTagName("body").className += " test";
alert("test");
}
}
document.onload = test();
答案 0 :(得分:2)
请注意,它是getElementsByTagName
,而不是getElementByTagName
- 它是复数。它返回一个元素列表。
将类添加到该列表中的第一个元素:
if ( document.getElementsByTagName("body")[0].className.match(/(?:^|\s)test(?!\S)/) ){
document.getElementsByTagName("body")[0].className += " test";
alert("test");
}
答案 1 :(得分:1)
getElementsByTagName
会返回psecified标记元素的数组。例如,如果您的网页上有100500个div
元素getElementsByTagName
将返回一个长度为100500的数组,它将包含您的所有div
元素。当然,array
没有财产className
如果您只想选择一个特定元素,可以为其指定id
属性,并调用getElementById
返回单个元素
如果使用getElementsByTagName
,您可以尝试获取元素数组,从中选择第一项(零索引),然后阅读它的' className
属性