此问题已在此处有答案:
What do querySelectorAll and getElementsBy* methods return?(12个回答)
10小时前关闭。
我输入了如下代码,以便只在特定的URL中添加类,但它不起作用。
你能帮我看看出了什么问题吗?
if(location.href.indexOf('url') > -1){
document.getElementsByClassName('className').classList.add('NewClass');
}
2条答案
按热度按时间lokaqttq1#
代码中的问题在于
getElementsByClassName
的使用。这个函数返回一个元素的集合,而不是单个元素,即使只有一个元素具有指定的类名。因此,在添加类之前,需要从集合中访问所需的元素。在此代码中,
getElementsByClassName
返回具有指定类名的元素集合。我们检查集合是否有任何元素(elements.length > 0
),如果有,我们使用elements[0]
访问第一个元素,然后使用classList.add('NewClass')
将NewClass
添加到它。3okqufwl2#
getElementsByClassName方法返回一个HTML集合,其中包含具有指定类名的所有元素。若要将类添加到集合中的元素,需要循环遍历集合并将类添加到每个单独的元素。
试试这个:
在这段代码中,我们首先将HTML集合存储在elements变量中。然后,我们使用for循环迭代集合中的每个元素,并使用classList.add方法将类'NewClass'添加到每个单独的元素。