2012-04-09 60 views
0

我有一段代碼在下面,當我點擊下一個按鈕進入下一個問題時,我正在使用該代碼。每個.questionContainer div內有4個可能的答案(輸入單選按鈕),其中5個問題有5個答案。使用jquery eq()獲取特定的DIV?

我想讓用戶點擊一個具體的問題編號,然後直接回答這個問題。 .next()代碼行正常工作以推進到下一個問題和可能的答案,但我已註釋掉的行不起作用。我究竟做錯了什麼???由於

$('.btnNext').click(function(){ 
    $(this).parents('.questionContainer').fadeOut(500, function(){ 
     $(this).next().fadeIn(500); 
    //$(this).eq(1).fadeIn(500); 
    }); 

}); 

回答

1

我建議使用:

$('.questionContainer').eq($(this).index()).fadeIn(500); 

這是假設你點擊一個a(或其他元素)具有對應於每個應該顯示.questionContainer元素的兄弟姐妹,內容大致如下:

<div id="wrapper"> 
    <div class="questionContainer"> 
     <!-- question one --> 
    </div> 
    <div class="questionContainer"> 
     <!-- question two --> 
    </div> 
    <div class="questionContainer"> 
     <!-- question three --> 
    </div> 
    <div class="questionContainer"> 
     <!-- question four --> 
    </div> 
    <div class="questionContainer"> 
     <!-- question five --> 
    </div> 
</div> 

<div id="buttons"> 
    <a href="#">Question 1</a> 
    <a href="#">Question 2</a> 
    <a href="#">Question 3</a> 
    <a href="#">Question 4</a> 
    <a href="#">Question 5</a> 
</div> 

如果你點擊的元素都沒有兄弟姐妹,你可以選擇傳遞給index()方法找到科爾等指標。這可以是任何基於類名,元素類型,父母等的CSS類型選擇器。

原因您的代碼第一塊沒有,不能,作品是$(this)(和this),只能是指單個元件/ DOM節點的時間,因此this(和$(this) )總是有一個隱含索引0(是第一個,也是唯一一個元素集合)。

參考文獻:

0

您可能還想嘗試使用通配符「$」,它告訴jQuery匹配任何以$結尾的ID;並通過「q5」設置問題的div id =「q1」:

var q_nbr = 1 //create a variable in the global scope for the question number 
    $(function() { 
    $("#btnNext").click(
     function() { 
     $("[id$=" + q_nbr + "]").fadeOut(500); // you may wish to omit this 
     q_nbr++ 
     $("[id$=" + q_nbr + "]").fadeIn(500); 
     } 
    ); 
    });