2011-01-14 16 views
6

私はhtmlを持ち、10番目の位置から5個の要素を選択したいと考えています。これを行う方法?インターバル間の要素の選択方法

私のhtml:

<div class="chaire"> 
    <img alt="" src="2.gif"> 

</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
... 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 

私はjQueryを使って試してみてください。

$(".chaire:gt(10):lt(15)"); 

が、それは私のdivとのimgタグを選択します。しかしdivタグが必要です。

答えて

4

あなたのコードはちゃんと仕事をして、そして唯一の <div>要素を選択します。 this example fiddleを見てください。これは、10番目( :gt(9):lt(15))の後に5 <div>の要素が見つかりました。


あなただけの例HTMLの場合には、そのクラス名を持つ要素を選択します持っているセレクタは、それだけで <div>要素です。いいえ <img>要素が選択されます。 rcravensがすでに指摘していたように、2つのセレクタは別々に結果を変更するので、 :lt()を最初に使用する必要があります - :lt(15):gt(9)

更新された例:http://jsfiddle.net/teQkf/3/。サンプルコードの次の部分では、結果内に<img>の要素が見つかり、srcを別のものに変更します。

あなたが速くもちろんのこと、その結果にのみ単一の操作、したがって、それほど混乱している、sliceを使用して、より良いオフにしている:

$(".chaire").slice(10,15); 

(example)

+0

私は同意しません。 :gt(9):lt(15)は、シリーズ内に5つの要素しかないので動作しているように見えます。あなたの例を次のように更新しました:http://jsfiddle.net/rcravens/teQkf/2/ – rcravens

+0

@rcravens:ええと、私もそれを理解しました。セレクタをスワップして問題を解決するので、私は答えを更新しました。この種の混乱を避けるために 'slice'を使うことをお勧めします。 –

2

この試してみてください。ここでは

$(".chaire:gt(10):lt(5)"); 

はで遊ぶためのjFiddleです。

http://jsfiddle.net/rcravens/m3j6K/

それは「GT」の後に残るものに適用される「GT」と「LT」セレクタ手段「LT」をチェーンのように見えます。

ボブ

+0

あなたは'10を維持したい場合'と' 15 'のインデックスは、' lt 'firstと' gt 'secondを適用します。私はjFiddleを更新して、その例を追加しました:http://jsfiddle.net/rcravens/m3j6K/1/ – rcravens

+0

両方のセレクタが引数として0から始まる整数を取ることを言及する価値はあるので、0は最初の要素から、1はしたがって、 ':gt(10):lt(5)'は実際には要素12-15を選択します。これは4要素だけです。あなた自身の例のアップデートを見てください:http://jsfiddle.net/m3j6K/3/ –