2011-07-16 11 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を配列に入れることはできますか?
そのようにすれば、私は簡単にイメージを消すことができます。
私は5枚目の画像を取り除きたいと言っています。私はちょうど次のようなことをすることができます:
images[4].fadeOut("slow");
またはそういうものです。
これは可能ですか?それとももっと良い方法がありますか?
私はすでにvar images = $('td > img');を試しましたが、うまくいかなかった(または何か間違っています)。私はインターネットでもそれを行う方法を探していますが、私はまだ助けてくれるものは何も見つかりませんでした。うまくいけばいい?
ありがとうございます!

答えて

5

あなたは今、特定の画像を選択したい場合は、あなたが.eq()[docs]を使用することができます

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

ですべての画像を選択することができます。

$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

コードは正常に機能するはずです。

あなたのJSは、おそらくあなたはjQueryのドキュメントレディ機能でそれを配置する必要がありますので、ページが読み込まれる前にロードされ
var imgs = $("#placeholder td > img"); 
console.log (imgs[0]); 

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

あなたの答えとあなたの時間のおかげで!上記の答えは完璧なので、おそらくその1つを使用します:)しかし、ありがとう! – Milaan

+0

あなたのオリジナルの解決策がうまくいかなかった理由について混乱しました... – bcoughlan

+0

私はjQuery document.ready関数()を持っていませんでした。しかし、まあ、それは今働く...だからみんなありがとう! – Milaan

0

あなたはこの操作を行うことができればそれは絶対に素晴らしいことだが、できません。 <td><img src=imagearray[5]><td>と言うことができますが、htmlとcssでは許可しません。 ですが、各クラスにクラスを与え、各クラスの画像をbackground-image:として保存し、それらの人をフェードします。

編集: 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

関連する問題