2012-03-28 7 views
0

私は、コードサーバ側から「ブック」を動的に作成しようとしています。その部分の細かい作業、および次のような出力を生成:奇数/偶数の子divを選択する

<div id="pagesContainer"> 
    <div class="pageContent"> 
     <div> 
      Page 1 content 
     </div> 
    </div> 
    <div class="pageContent"> 
     <div> 
      Page 2 content 
     </div> 
    </div> 
    <div class="pageContent"> 
     <div> 
      Page 3 content 
     </div> 
    </div> 
    <div class="pageContent"> 
     <div> 
      Page 4 content 
     </div> 
    </div> 
    <div class="pageContent"> 
     <div> 
      Page 5 content 
     </div> 
    </div> 
</div> 

私が行うために必要なもの、好ましくはjQueryを使用すると、このようなpage-leftpage-rightとして最も内側のdiv要素にクラスを追加することです。たとえば、ページ1,3,5はpage-left、ページ2と4はpage-rightとなります。 5ページ以上もあるかもしれません。私はさまざまな偶数/奇数セレクタシナリオを使用してみましたが、正しく動作するようには見えません。

誰かが正しい方向に向かうことができますか?

ありがとうございます!

+0

jQueryは、 '.each()'で反復処理するときに整数で渡されます。あなたはちょうどそれを使用できませんか? – Pointy

答えて

10

:奇数と偶数のセレクタを使用します。

$('.pageContent:odd').addClass("page-left") 
$('.pageContent:even').addClass("page-right") 
+0

私はこれを私に最も近いものとして答えとしてマークしています。私は '$("。pageContent:nth-​​child(odd)> div ")を使って終わりました。ありがとう! –

7

これは動作するはずです。

$('#pagesContainer').children('.pageContent').each(function(index) 
{ 
    $(this).addClass(index % 2 ? 'page-right' : 'page-left'); 
}); 

デモ:jsFiddle

1
$('.pageContent').each(function(i,t){ 
var addClass = i % 2 == 0 ? 'odd' : 'even'; 
$(t).addClass(addClass); 
}) 
3

:odd:evenセレクターをお試しください:説明したよう

$('.pageContent:nth-child(odd)').addClass('odd'); 
1

nth-child(even)を使用してみてください:それは組み込みセレクタだから

$('.pageContent:odd').addClass('odd'); 

ます。また、パフォーマンスブーストを活用するために:nth-childを使用することができますここに:http://www.w3.org/Style/Examples/007/evenodd.en.html

+0

注:質問には「CSS」タグはありません... – ManseUK

+0

@ManseUKあなたは大丈夫です。私は、CSSをタグ付けしていないことに気付かずに、交互の行にクラスを追加して、CSSを交互の行に直接適用するようにコーナーを切り詰めたいと読んでいました。もちろん、クラスはCSSだけではありません。 – Johno

0
$(".pageContent:odd").addClass("oddPage"); 
$(".pageContent:even").addClass("evenPage"); 
0

は、これはあなたが達成しようとしているものですか? http://jsfiddle.net/Sf7AD/3/

$('#pagesContainer > div:even').addClass('page-left'); 
$('#pagesContainer > div:odd').addClass('page-right'); 

ないように要素がインデックス0であるため、:evenが反直感的であろう特に http://api.jquery.com/even-selector/

ドキュメントからなど、第5、第1〜第3の要素

を選び0ベースのインデックス付けは、 が直感的に逆であることを意味します。最初の要素、3番目の要素、 などを選択します。一致したセット内で

関連する問題