传递索引值以用作jquery中的选择器

时间:2012-04-27 19:13:48

标签: jquery css-selectors

截至4月28日的修订版。我必须有一些选择错误。

更新的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()是否是一个显示/隐藏的问题。

这将返回我需要的值:

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时,使用第一行的相同索引值作为过滤器。

2 个答案:

答案 0 :(得分:4)

更改您的代码

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

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

如果你不明白我做了什么。 在您现有的代码中,“findMe”只是一个字符串而不是变量。在修改后的代码中,findMe被视为一个变量,它的值将被替换。

答案 1 :(得分:0)

想出来以备将来参考。我的选择器关了。在嵌套模式中:

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


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

是我需要的。

虽然jquery在选择方面从右到左阅读,但这让我失望,因为我认为eq()和show()是从右到左动作的一部分而不是只考虑选择然后采取行动。

这里的每个人都可能知道,但现在我明白了。