2011-07-16 75 views
0

我有一個問題。我會先發布HTML,我知道你不應該使用表格來進行設計和這樣的東西。但它僅用於學習目的。把元素放入數組中?

<table id="placeholder"> 
<tr> 
    <td><img src="img/1.jpg"/></td> 
    <td><img src="img/2.jpg"/></td> 
    <td><img src="img/3.jpg"/></td> 
</tr> 
<tr> 
    <td><img src="img/4.jpg"/></td> 
    <td><img src="img/5.jpg"/></td> 
    <td><img src="img/6.jpg"/></td> 
</tr> 
<tr> 
    <td><img src="img/7.jpg"/></td> 
    <td><img src="img/8.jpg"/></td> 
    <td><img src="img/9.jpg"/></td> 
</tr> 
<tr> 
    <td><img src="img/10.jpg"/></td> 
    <td><img src="img/11.jpg"/></td> 
    <td><img src="img/12.jpg"/></td> 
</tr> 
<tr> 
    <td><img src="img/10.jpg"/></td> 
    <td><img src="img/11.jpg"/></td> 
    <td><img src="img/12.jpg"/></td> 
</tr> 
</table> 

是否有可能把所有的IMG放入數組中?
這樣我就可以輕鬆淡出我想要的圖像。
讓我說我想擺脫第五張圖片,我可以做一些像:
images[4].fadeOut("slow");
或類似的東西。
可以做到這一點嗎?還是有更好的方法來做到這一點?
我已經試過var images = $('td > img');,但沒有奏效(或者我做錯了什麼)。我也在互聯網上尋找辦法,但我還沒有發現任何可以幫助我的東西。希望你可以嗎?
在此先感謝!

回答

5

您可以

var $images = $('#placeholder img'); 

選擇所有圖像如果您現在要選擇一個特定的圖像,你可以使用.eq()[docs]

$images.eq(4).fadeOut(); 

$images[4]工作過,但它確實回報一個jQuery對象,但相應的DOM元素。因此你不能直接調用fadeOut


沒有jQuery的,你可以得到所有的圖像與getElementsByTagName[docs]

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

這給你DOM元素的數組(實際上是一個NodeList),並再次你不能直接調用jQuery的方法fadeOut上他們。

+1

謝謝你!你真的幫助我了!我正在尋找這個至少2個小時!感謝您的快速回復!它很棒!真棒! – Milaan

+0

@米蘭:不客氣:) –

0

你的代碼應該工作,例如,

var imgs = $("#placeholder td > img"); 
console.log (imgs[0]); 

你的JS可能是在頁面加載之前加載,所以你需要把它放在jQuery的文件準備好功能:

$(function() { 
    var imgs = $("#placeholder td > img"); 
    console.log (imgs[0]); 
}); 
+0

感謝您的回答和您的時間!上面的答案完美無缺,所以我可能會使用那個:)但是謝謝你! – Milaan

+0

當然。混淆爲什麼你原來的解決方案不工作,雖然... – bcoughlan

+0

我不知道,我有jQuery document.ready函數()。但是,它現在可行了...所以,謝謝大家! – Milaan

0

這將是絕對巨大的,如果你可以做到這一點,但你不能。你想能夠說<td><img src=imagearray[5]><td>,但HTML和CSS不允許它。你可以,但是,給每個<td> s類,存儲每個類的圖像爲background-image: s,並褪色這些傢伙。

編輯: oops,沒有看到jquery標籤。

+0

哈哈沒問題,謝謝! – Milaan

0

$('td > img')不是數組,而是一個jQuery對象。所以你可以這樣使用它:

$('td > img').each(function(index, imageElement) { 
    // Do logic based on the index or something else. 
}); 
+0

啊,這解釋了爲什麼它不工作!謝謝! – Milaan