2012-12-11 36 views
0

嗨,我想訪問下javascript.My編寫特定的div所有圖像是:訪問在特定的div的所有項目在JavaScript

<div id="image-container" style="background-image:url(loading.gif)"> 
     <div class="fade-box" id="image-1"><a href="javascript:GoNext();"><img src="2bscene-logo.gif" alt="" width="330" height="108" border="0" /></a></div> 
     <div class="fade-box" id="image-2" style="display: none;"><a href="javascript:GoNext();"><img src="streetgallery-logo.gif" alt="" width="330" height="108" border="0" /></a></div> 
     <div class="fade-box" id="image-3" style="display: none;"><a href="javascript:GoNext();"><img src="g4m-logo.gif" alt="" width="330" height="108" border="0" /></a></div> 
</div> 

雖然我的js代碼是:

var image_slide = new Array('image-1', 'image-2', 'image-3'); 

我想要動態獲取基於id的所有DIV s,沒有預定義的數組。我怎樣才能做到這一點?

+0

您已使用'prototype'標籤。你的意思是'Prototype'(圖書館)? –

回答

0

使用JavaScript,你可以用DOM做到這一點很容易:

var container = document.getElementById("image-container"); 
var child; 
var image_slide = []; 
for (child = container.firstChild; child; child = child.nextSibling) { 
    if (child.id && child.nodeName === "DIV") { 
     image_slide.push(child.id); 
    } 
} 

Live Example | Source

請注意,上述代碼必須在之後運行元素已經在DOM中。確保在頁面下方放置script標籤的最佳方式(在關閉</body>元素之前良好)。

+0

感謝您的回覆。您的代碼給我的錯誤容器是空的。任何想法爲什麼。 –

+0

@MahmoodRehman:假設你已經發布的標記在頁面上,這個代碼運行*不應該發生,因爲你顯然確實有這個'id'的元素。查看我剛剛添加的實況示例。 –

+0

爲什麼這麼複雜,而不是像兒童那樣使用DOM方法呢? – Christoph

1

通過純JavaScript,你可以嘗試:

var arr = document.querySelectorAll('#image-container img'); 
for(var i=0;i<arr.length;i++){ 
    console.log(arr[i].getAttribute('src')) 
} 

在支持querySelectorAll瀏覽器。 (IE8及以上,其他版本的現代版本,而不是IE7和下載。) - 正如T.J.的評論中提到的那樣。克羅德

+0

在支持'querySelectorAll'的瀏覽器上。 (IE8及以上,其他版本的現代版本,而不是IE7及以下版本)。另外,您正在獲取'src'屬性。樣本數組沒有那個,它有'id'值。 –

+0

是的,我同意你 –

+0

@Crowder更新我的答案 –

相關問題