2016-10-28 4 views
-3

で私はforeachのことで生成されたリストを持っている:jQueryの、:最初のリストではなく、まず

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

その後、私はhiddenValuesが見えるようにするjQueryのを使用します。

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

問題があります、私はこれを最初のものでのみ起こる任意の行にこれを使用します。 ":first"を指定しないと、すべての行で動作します。私が取り組んでいる行だけでそれを実現させるために私は何ができますか?

編集:クリックするボタンは別のdivにあるため、まだ動作していません。 EDIT2:解決策は次のとおりです。

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

各親は()最後にrowClass内部.hiddenValuesを検索するためのdivのツリーで高いジャンプします。 すべてありがとう!あなたは私にそれを解決させました。

答えて

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

私はそれが私が取り組んでいる行にのみ起こるようにするために何ができますか?

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

thisは、イベントに関連する特定の.MagicButtonを参照します:

あなたのイベントハンドラで使用thissiblingsを使用するには、兄弟要素を取得します。 .hiddeValuesは兄弟要素(同じ親の子)です。

1

使用この構文

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

最初は、構造が脆弱な、小さな変化がそれを破るだろうです。 2番目ははるかに堅牢です。 –

+0

@ T.J.Crowder私はそれを知っている..したがって、私はそれが現在のHTMLのためだけに働くことを指摘した。私はそれを..削除するヘッドアップのおかげで –

関連する問題