类型错误:document.getElementsByTagName(..).className未定义

TypeError: document.getElementsByTagName(...).className is undefined

本文关键字:className 未定义 getElementsByTagName 错误 document 类型      更新时间:2023-09-26

我一直在获取

类型错误:document.getElementsByTagName(…).className未定义

怎么了,我真的不明白。

function test(){
    if ( document.getElementsByTagName("body").className.match(/(?:^|'s)test(?!'S)/) ){
        document.getElementsByTagName("body").className += " test";
        alert("test");
    }
}
document.onload = test();

注意它是getElementsByTagName,而不是getElementByTagName——它是复数。它返回一个元素列表。

要将类添加到该列表中的第一个元素:

if ( document.getElementsByTagName("body")[0].className.match(/(?:^|'s)test(?!'S)/) ){
    document.getElementsByTagName("body")[0].className += " test";
    alert("test");
}

getElementsByTagName返回指定标记的元素的数组。例如,如果页面上有100500个div元素,则getElementsByTagName将返回一个长度为100500的数组,并且它将包含所有div元素。当然,array不具有className 的性质

如果你只想选择一个特定的元素,你可以为它指定一个id属性,并调用getElementById,它会返回你的单个元素

在使用getElementsByTagName的情况下,您可以尝试获取元素的数组,从中选择第一项(零索引),然后读取其"className属性"