2013-02-26 37 views
0

我想通過外部js文件將每個<img>鏈接到自己(文件)。是否有可能通過JavaScript將所有的HTML圖像變成鏈接?

我的思考過程是我可以定位所有img元素,然後抓取圖像src並在img元素周圍放置一個鏈接。 例如:

談到這一點:

<img width="281" vspace="7" hspace="5" height="215" align="left" alt="img1" src="cits/images/image001.jpg"></img>

進入這個:

<a href="cits/images/image001.jpg" target="_blank"> <img width="281" vspace="7" hspace="5" height="215" align="left" alt="img1" src="cits/images/image001.jpg"></img> </a>

它看起來像我可以抓住IMG SRC作爲變量,以及找到IMG元素,但我不知道我如何能夠在img上添加鏈接。

+3

我會使用另一種方法:處理點擊所有圖像就好像它們是鏈接(使用'window.open',如果你想讓它們在單獨的窗口中打開)。問題是,包裝元素中的所有圖像可能會破壞頁面結構。 – raina77ow 2013-02-26 16:28:29

+0

你使用jQuery嗎? – 2013-02-26 16:28:54

+0

@ raina77ow聽起來很容易,謝謝。我會留下這些,以避免任何人有更多的想法拋出或解決方案。 – Eric 2013-02-26 16:29:32

回答

2

萬一你正在使用jQuery

$('img').each(function(ix, image){ 
    $(image).wrap('<a target="_blank" href="' + $(image).attr('src') + '"></a>'); 
}) 
3

抓住所有的圖像。

var images = document.getElementsByTagName('img'); 

編寫替換新的標記,包括指向圖像,其中包括圖像的舊outerHTMLsrc屬性的鏈接的圖像的outerHTML的功能。

function makeLink(image){ 
    image.outerHTML = '<a target="_blank" href="' + image.src + '">' + image.outerHTML + '</a>'; 
} 

遍歷你的圖像,並提交每個到makeLink功能。

for(var i = 0, l = images.length; i < l; ++i){ 
    makeLink(images[i]); 
}; 
1

如果你願意使用jQuery,該代碼非常簡單:

$("img").each(function() { 
    $(this).wrap($("<a target='_blank'/>").attr("href", $(this).attr("src")); 
}); 

否則你得尋找到一個原料JavaScript解決方案,這是更復雜一點。見@巴尼的答案。

相關問題