2012-04-27 32 views
1

修訂後的編輯截至4/28。我必須有一些選擇錯誤。傳遞索引值在jquery中用作選擇器

一個更新的jsfiddle是在這裏:http://jsfiddle.net/thumbslinger/UwFRm/44/

希望發生的事情是,當一個人點擊了「.correct」的答案,相應的‘rightAnwer’應該變得可見。這是從小提琴不工作的片段:

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

正在顯示正確的「答案」,但是,我只是想用類「.rightAnswer」的DIV這是一個孩子'回答'顯示。

////////////原來的職位低於//////////////////////

殺了我。注意:我問了類似的問題,但現在的問題是傳遞價值與獲取價值。我想知道如果使用eq()是一個問題w/show/hide。

這將返回值,我需要:

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

現在我嘗試使用該值作爲選擇另一種元素的一部分:

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

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

,我已經試過: $ ('#FullSongs_Container .answer')。eq(findMe).show();

所以,我想要在不同容器中選擇另一個div時使用第一行的相同索引值作爲過濾器。

+0

要做到這一點比你的親戚parent()。parent()方法有更好的方法。你有一些HTML分享? – Marc 2012-04-27 19:15:46

回答

4

更改代碼

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

TO

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

如果你不明白我做了什麼。 在你現有的代碼中,「findMe」只是一個字符串而不是一個變量。在修改後的代碼中,findMe被視爲一個變量,它的值將被替換。

+0

嗯..我必須嘗試...它似乎還沒有工作...背景和其他圖形不在這裏,但到目前爲止,這是整個事情:http://jsfiddle.net/thumbslinger/UwFRm/btw,對第一個和第二個問題,第二個答案是正確的 – lbreau 2012-04-27 20:07:40

+0

@lbreau你解決了這個問題嗎?我沒有建議2個答案,我只是說你現有的代碼(第一個,在我的文章中)應該修改(第二個是修改的代碼) – KBN 2012-04-27 20:10:58

+0

是的,我試過了,但它仍然顯示()正確的答案,然而設置一個CSS風格的作品,所以我認爲eq()和顯示/隱藏是一個可能的問題。 – lbreau 2012-04-27 20:24:46

0

想出來供將來參考。我的選擇器關閉了。在嵌套的模式:

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


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

是我所需要的。

儘管jquery按照選擇的順序從右到左讀取,但是這使我感到遺憾,因爲我認爲eq()和show()是從右到左的動作的一部分,而不是僅僅考慮選擇然後採取行動。

這裏的每個人都知道,但現在我明白了。

相關問題