jQuery,:首先在列表中,但不首先

时间:2016-10-28 10:27:31

标签: jquery html

我有一个由foreach生成的列表:

<div class="rowClass">
  <div>
    <input class="MagicButton" value="click to show hidden values in row"/>
  </div>
   <div class="hiddenValues"></div>
</div>

然后我使用jQuery使hiddenValues可见:

$(".MagicButton").click(function () {
        $(".hiddenValues:first").slideDown("slow");
});

问题是,当我在任何一行上使用它时,它只发生在第一行。没有&#34;:第一&#34;它适用于所有行。我该怎么做才能让它在我正在进行的那一行上发生?

编辑:要点击的按钮位于另一个div中,因此它仍然无效。 Edit2:解决方案是:

 $(this).parent().parent().find(".HiddenValues").slideDown("slow");

每个parent()在div树中跳得更高,最后在rowClass中搜索.hiddenValues。 谢谢你的一切!你让我解决了

3 个答案:

答案 0 :(得分:1)

使用此语法

$(".MagicButton").click(function () {
     $(this).parent().find('.hiddenValues').slideDown("slow");
});

答案 1 :(得分:1)

$(".MagicButton").click(function () {
    $(this).parent().find(".hiddenValues").slideDown("slow");
});

答案 2 :(得分:0)

  

我能做些什么才能让它在我正在处理的那一行上发生?

在事件处理程序中使用this并使用siblings获取兄弟元素:

$(".MagicButton").click(function () {
    $(this).siblings(".hiddenValues").slideDown("slow");
});

this将引用与该事件相关的特定.MagicButton.hiddeValues是兄弟元素(同一父母的孩子)。