为什么querySelectorAll()和getElementsByTagName()不起作用?

时间:2016-04-23 09:04:26

标签: javascript

我尝试在HTML页面中选择所有<a>元素,然后为每个元素添加一个类。然后运行一个函数,从每个<a>元素中删除同一个类。

我已尝试使用querySelectorAll():

document.querySelectorAll('a').className += ' class1';

使用getElementsByTagName():

document.getElementsByTagName('a').className += ' class1';

但两者都不起作用。我已经开始使用jQuery了,所以不需要回答。我只是想在这种情况下比较JavaScript和jQuery的性能,并在我学习时学习更多的香草JavaScript。

我也试过删除这样的课程:

document.querySelectorAll("a").className =
  document.querySelectorAll("a").className.replace
    ( /(?:^|\s)class1(?!\S)/g , '' ) 

document.getElementsByTagName("a").className =
 document.getElementsByTagName("a").className.replace
  ( /(?:^|\s)class1(?!\S)/g , '' );

但这些都不起作用。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

Document.querySelectorAll返回一个列表。您需要遍历列表元素

答案 1 :(得分:1)

document.querySelectorAll返回一个列表,因此您需要循环它。例如:

var links = document.querySelectorAll('a');
for(var i = 0; i < links.length; i++){
    links[i].className = 'class1';
}