我有一个由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。 谢谢你的一切!你让我解决了
答案 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
是兄弟元素(同一父母的孩子)。