2012-04-27 6 views
1

4/28時点で改訂されました。私はいくつかの選択エラーが必要です。jqueryのセレクタとして使用するインデックス値を渡します。

更新jsFiddleはここにある:http://jsfiddle.net/thumbslinger/UwFRm/44/

は何が起こる必要があり、1は「.correct」の答えをクリックすると、対応する 『rightAnwerは』目に見えるようになるべきであるということです。これは動作していないフィドルから抜粋されています

$('.correct').click(function(){ 
    var findMe = $(this).parent().parent().index(); 
    $('.answer').eq(findMe).show(); 
    }); 

正しい「答え」が表示されているが、しかし、私はただの子供である「.rightAnswer」のクラスを持つdiv要素を、したいです'答え'を表示する。私を殺し//////////////////////

BELOW

////////////オリジナルのポスト。注:似たような質問をしましたが、問題は値を渡すことと値を渡すことです。私はeq()を使用して表示/非表示の問題があるのだろうかと思います。

これは私が必要とする値を返します。

$('.correct').click(function(){ 
    var findMe = $(this).parent().parent().index(); 

    $('#fullSongs_Container .answer:eq(findMe)').show(); 
    }); 

と私が試した:

var findMe = $(this).parent().parent().index(); 

は今、私は別の要素の選択の一部として、その値を使用しようとしています $を( '#fullSongs_Container .answer')。eq(findMe).show();

したがって、別のコンテナで別のdivを選択するときに、最初の行の同じインデックス値をフィルタとして使用したいと考えています。あなたは私が何をしたか理解していなかった場合は

+0

これを行うには相対的な 'parent()。parent()'アプローチよりも良い方法があります。共有するHTMLがありますか? – Marc

答えて

4

$('#fullSongs_Container .answer:eq(' + findMe + ')').show(); 

TO

$('#fullSongs_Container .answer:eq(findMe)').show(); 

あなたのコードを変更し

。 既存のコードでは、 "findMe"は単なる文字列であり、変数ではありません。変更されたコードでは、findMeは変数として扱われ、その値はそこに代入されます。

+0

hmm ..私はそれを試さなければならないでしょう...それはまだ動作していないようです...背景や他のグラフィックスはここにはありませんが、これまでのところここまでです:http://jsfiddle.net/thumbslinger/UwFRm/btw、最初と2番目の質問では、2番目の答えは正しい – lbreau

+0

@ lbreau問題を修正しましたか?私は2つの答えを提案していない、私はちょうどあなたの既存のコード(私の記事の最初のもの)を修正する必要があります(第2のものは変更されたコードです) – KBN

+0

はい、私はそれを試みたが、私はeq()とshow/hideが考えられるので、CSSスタイルを設定すると問題が起こる可能性があります。 – lbreau

0

将来の参照のためにこれを示します。私のセレクターはオフだった。ネストされたパターン:

<div class="question"> 
    <div class="rightAnswer"></div> 
    <div class="wrongAnswer"></div> 
</div> 


$('.answer .rightAnswer').eq(findMe).show(); 

が必要です。

jqueryは選択の点では右から左へ読み込みますが、eq()とshow()は右から左へのアクションの一部であると考えられたため、これは私を捨てました。選択してから実行するアクションを選択します。

ここに誰もがそれを知っているかもしれませんが、今見ています。

関連する問題