2012-04-12 8 views
1

あなたから少し助けが必要です。要素がどこにあるかをチェックしています。最初の文が動作している場合ではない場合、それ以外...私はこのようにも何かを試してみましたが、それは動作しません:前へJqueryで確認する

else if(($('.current').prev().hasClass('green')){ 
    alert('Green is Before the current Picture'); 
    } 

を、私はこれを達成したい:グリーンは、クラス「現在」の警告の前であれば"緑は現在の写真の前です"。 誰かが私を助けることができますか?ありがとうございました!要素が兄弟であると仮定すると、

var $green=$('.green:not(:nth-child(6))'); 

$('.greencontroll').click(function(){ 

    if($green.next($('.current').length)){ 
    alert('Green is After the current Picture'); 
} 

    else if($green.prev($('.current').length)){ 
     alert('Green is Before the current Picture'); 
     } 
+0

緑があなたのjsFiddleの写真の後にあるので、その写真の前にあると言っているのではありません... –

+0

次のスライドで2回クリックすると、 "Green" "それは問題です... –

答えて

2

:ここ

は、私はこのコードを持っているFiddle.

ある

var $elements = $('.current').siblings().andSelf(); 

var curIndex = $elements.index(".current"); 
var greenIndex = $elements.index(".green"); 

if(curIndex > greenIndex){ 
    // before 
} 

あなたのコードの問題はprevが直前に兄弟を取得するということです以前の兄弟すべてではない

+1

+1、どこで' andSelf(); 'についてもっと詳しく知ることができますか? –

+0

@SheikhHeera jqueryドキュメントhttp://api.jquery.com/andSelf/振り返ってみても、 '.parent()。children()'はやや効率的かもしれません。 –

+0

リンクありがとうございました。 –

関連する問題