[英]Change all href inside a DIV with class
我正在嘗試更改使用類的幕布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。
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');
否則,您必須使用for
循環遍歷.class
元素,並在循環內調用getElementsByTagName('a')
以獲取a
元素。
你可以試試下面的代碼:
var elements = document.getElementById('parentContainer').getElementsByClassName('classname');
for (var i = 0; i < elements.length; i++)
{
//change href's here..
}
希望這可以幫助..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.