如何使用javascript刮取页面中的所有链接

时间:2014-08-24 05:56:51

标签: javascript html

我正在尝试使用此代码编写chrome扩展名来更改页面中的所有href:

var a = document.querySelector("a[href]");
a.href = "http://www.google.com";

但是这段代码只取得了第一个href,但前提是它没有嵌入另一个属性中(如果术语错误,我的意思是div,p,h等)。

有人可以告诉我如何获取所有href,无论如何?

2 个答案:

答案 0 :(得分:3)

document.querySelector只返回文档中的第一个元素,因此在这种情况下,您将需要使用document.querySelectorAll来代替返回所有匹配元素的列表。

var elements = document.querySelectorAll('a');

for (var i = 0; i < elements.length; i++) {
  elements[i].href = 'http://google.com';
}

答案 1 :(得分:0)

  

但仅当它没有嵌入另一个属性时(如果该词是错误的,我的意思是div,p,h等。)

我相信你在谈论标签而不是属性。要选择具有href属性存在的所有标记,请执行以下操作:

var list = document.querySelectorAll("*[href]");
for(var i = 0; i < list.length; i++){
    list[i].href = "http://www.google.com";
}