如何

2012-03-16 66 views
0

我已經創建了一個使用JavaScript來連接到XML,並得到一個圖片的名稱HTML文檔使用該CSS加載同一個地方裝載多個圖片:如何

#container { 
width:800px; 
} 
#left { 
    top:10%; 
    position: relative; 
    float: left; 
    width:200px; 
    left:30px; 
} 
#right { 
    position:absolute; 
    top: 0px; 
    right: 300px; 
    z-index:-1; 
} 

而這種代碼:

var TestP = new Array(); 

function loadImg(n){ 

TestP[n] = xmlDoc.documentElement.childNodes[n].textContent; 
var img = document.createElement('img'); 
alert(TestP[n]); 
img.src = TestP[n]; 


alert(n); 
alert(TestP[n]); 
document.getElementById('right').appendChild(img); 

的HTML的一部分:

的事情是,當我第一次點擊的鏈接,一切工作但是當我再次點擊時,我會得到兩張圖片,每張圖片都在不同的位置。我想讓第二張照片拍到完全一樣的地方,在第一張照片的頂部。

+0

您是否嘗試刪除現有的並在佔位符中加載新的? – iDroid 2012-03-16 10:23:18

+0

該怎麼做? – 2012-03-16 10:31:13

回答

1
elem = document.getElementById('right'); 
child = elem.firstChild; 
if (child) 
    elem.replaceChild(img, child); 
else 
    elem.appendChild(img); 
+0

IT沒有工作。他們說firstChild不是一個功能! – 2012-03-16 10:28:07

+0

哎呀,我的不好:)現在就試試。 – Noora 2012-03-16 10:34:41

+0

Okey工作,出現錯字錯誤...謝謝! – 2012-03-16 10:34:55

1

不會創建新圖像,而是替換src屬性。

先給圖像的ID,這樣你就可以找到它:

<img id="myimage" src="..."/> 

改變它是這樣的:

document.getElementById("myimage").src = "...new source..."; 

另一種選擇:

var TestP = new Array(); 

function loadImg(n) { 
    TestP[n] = xmlDoc.documentElement.childNodes[n].textContent; 
    var myImage = document.getElementById("myimage"); 
    if(myImage != null) { 
     myImage.parentNode.removeChild(myImage); 
    } 
    var img = document.createElement('img'); 
    img.src = TestP[n]; 
    img.id = "myimage"; 
    document.getElementById('right').appendChild(img); 
} 
+0

我沒有使用img標籤,我正在使用appendChild – 2012-03-16 10:20:26

+0

如果您添加一張新圖片,則必須刪除前一張圖片。你可以先檢查你是否已經添加了一個(通過給它一個id並檢查它是否存在)。如果您已經使用了一個,請將其移除並追加一個新的。如果你還沒有追加一個,只需追加一個。 – Tom 2012-03-16 10:24:53

+0

你能否幫我解決一些問題,並根據我的書面代碼給我提供幫助的代碼? – 2012-03-16 10:30:15

0

好了,你用.appendChild()來做。然後你再次調用它並附加第二個孩子。所以,你有兩個選擇。在添加第二張圖像之前,請先刪除舊圖像,或者將其替換。

+0

有了上面寫的代碼,請告訴我怎麼做 – 2012-03-16 10:19:56

+0

add img.setAttribute('id','some id'); ..現在,您可以通過document.getElementById('some id')調用元素並將其刪除,或者將其屬性src更改爲一些新的src – 2012-03-16 10:23:00

+0

我知道它是一個滿手,但我可以請你寫下代碼根據我的代碼..我真的很新,我想我搞砸了..在此先感謝 – 2012-03-16 10:29:12

1

聽起來像你只想一個圖像,其中你每次更改的URL。

定義您的HTML:

<img id="image"> 

,並在JavaScript中使用:

var TestP = []; // cleaner way for creating an array 

function loadImg(n) { 
    TestP[n] = xmlDoc.documentElement.childNodes[n].textContent; 

    document.getElementById('image').src = TestP[n]; 
} 

還要注意的是HTML5引入了一些語義,其中一個通過JavaScript具有約束力的事件處理程序,而不是通過HTML。

+0

我不創建圖像選項卡,我正在使用appendChild – 2012-03-16 10:31:00

+0

@ELias Rahme:如果您正在追加圖像,您將最終與其中幾個相鄰...您只需要一個圖像,所以你不想追加 - 你能詳細說明一下嗎? – pimvdb 2012-03-16 10:32:46