2010-01-20 87 views
0

我在這裏有一些標記,我需要使用JavaScript重新格式化。基本上,我有這樣的代碼:使用javascript重寫HTML代碼

<div id="images">  
     <img src="01.jpg"> 
     <img src="02.jpg"> 
     <img src="03.jpg"> 
     <img src="04.jpg"> 
     <a id="src" href="01.jpg"></a> 
     <a id="src" href="02.jpg"></a> 
     <a id="src" href="03.jpg"></a> 
     <a id="src" href="04.jpg"></a> 
    </div> 

和我想的JavaScript重寫代碼,以使圖像放置錨內。像這樣:

<div id="images">  
     <a id="src" href="01.jpg"><img src="01.jpg"></a> 
     <a id="src" href="02.jpg"><img src="02.jpg"></a> 
     <a id="src" href="03.jpg"><img src="03.jpg"></a> 
     <a id="src" href="04.jpg"><img src="04.jpg"></a> 
    </div> 

有什麼想法嗎?

+2

順便說一句,你不能有'ID = 「SRC」'在不止一個地方。每個'id'值在整個文檔中必須是唯一的。 – 2010-01-20 01:13:14

+0

鏈接是否提供JavaScript禁用的任何用途?可能更容易創建與jQuery的鏈接,如果是這種情況 – Gareth 2010-01-20 01:37:38

+0

不知道爲什麼我添加了ID克里斯。我們可以刪除它。用jquery Gareth來做這件事更容易。請參閱http://stackoverflow.com/questions/2098600/jquery-using-getjson-to-return-images-and-then-wrap-them-in-anchors瞭解我們的想法。 – Alfonse 2010-01-20 03:28:25

回答

3
<script> 
var div = window.document.getElementById("images"); 
var anchors = div.getElementsByTagName("A"); 
var imgs = div.getElementsByTagName("IMG"); 
for (var i = anchors.length - 1; i >= 0; i--) { 
    anchors[i].appendChild(imgs[i]); 
} 
</script> 
+0

好啊。給一個男人一條魚等 – harto 2010-01-20 03:27:57

+0

感謝你做舊學校。 – Alfonse 2010-01-20 03:30:12

0

一般策略:

  1. 獲取對「影像」的參考DIV
  2. 創建一個臨時對象來存儲圖像,例如var imgs = {};
  3. 遍歷div內的所有img元素。對於每一個元素:
    • 每個元素添加到imgs,利用其src爲重點
  4. 環比格內的所有a元素。對於每個元素:
    1. 查找圖像從imgs使用該元素的屬性href
    2. 從其當前位置中取出img,並且a的主體內重新插入。
+0

(假設沒有特定的圖像和/或鏈接排序) – harto 2010-01-20 01:54:37