用类改变DIV中的所有href

时间:2014-02-18 05:41:27

标签: javascript

我正在尝试更改使用类的幕布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。

2 个答案:

答案 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..
}

希望这会有所帮助..