我正在尝试更改使用类的幕布DIV中的所有href链接。 到目前为止,我已经能够使用此代码段更改页面中的所有链接:
function Sl(){
var l = document.getElementsByTagName('a');
for(i=0;i<l.length;i++){
var cl = l[i].href;
l[i].href = cl.replace(cl,'http://domain,com/'+cl);}
}
window.onload = Sl;
但它不是一个理想的解决方案。
我尝试过使用这一行:
var l = getElementsByClassName('class').getElementsByTagName('a');
但它不起作用。
注意:没有Jquery解决方案,只有感谢JavaScript,我不想只为一个小片段加载jquery。
答案 0 :(得分:2)
querySelectorAll
是一个受到良好支持的方法(即使IE8支持它),因此您可以使用一个简单的选择器来获取所有a
元素:
var l = document.querySelectorAll('div.class a');
我尝试过使用这一行:
var l = getElementsByClassName('class').getElementsByTagName('a');
但它无效
这是因为,就像getElementsByTagName
一样,getElementsByClassName
会返回元素列表。如果您知道该类只有一个元素,则可以直接引用它:
var l = getElementsByClassName('class')[0].getElementsByTagName('a');
否则,您必须使用.class
循环遍历for
元素并在循环调用getElementsByTagName('a')
内迭代以获取a
元素。
答案 1 :(得分:0)
您能否请尝试以下代码:
var elements = document.getElementById('parentContainer').getElementsByClassName('classname');
for (var i = 0; i < elements.length; i++)
{
//change href's here..
}
希望这会有所帮助..