我正在尝试使用此代码编写chrome扩展名来更改页面中的所有href:
var a = document.querySelector("a[href]");
a.href = "http://www.google.com";
但是这段代码只取得了第一个href,但前提是它没有嵌入另一个属性中(如果术语错误,我的意思是div,p,h等)。
有人可以告诉我如何获取所有href,无论如何?
答案 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";
}