2011-07-16 43 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