1

html:

 <div class="a">

   <div class="g"></div>
   <a class="e">Link</a>

  <div class="g"></div>
   <a class="e">Link</a>

</div>

リンクをクリックするたびに、クラス「g」のdivを非表示にします。その特定のリンクのみ。最初のリンクをクリックした場合、クラス「g」の最初のdivのみを非表示にする必要があります。ここにある。

Jquery:

    $('.e').click(function(){
               c();
       });

    function c(){
          $(.g).hide();
      }

しかし、これはクラス「g」のすべての要素を隠しています。

クラス「g」のdivとlinkはどちらもユーザーによって動的に生成され、ユーザーが何人生成できるかわかりません。

4

4 に答える 4

2

$('.g').hide()現在、あなたは、gをクラスとして持つすべての要素を選択し、それらをすべて非表示にしている呼び出しを行っています。

代わりprev()に、非表示にする要素を選択するために使用します

       $('.e').click(function(){
              jQuery(this).prev().hide();
       });

デモ

コメントごとに更新:

次のコードを使用できます。

$('.e').click(function(){
              c(this);
       });

function c(element){
          $(element).prev().hide();
      }

ライブデモ

于 2012-04-29T17:31:57.397 に答える
2

これを試して:

$(".e").click(function(){
   $(this).closest("div.g").hide();
})

また:

var elem = "";
$(".e").click(function(){
       elem = $(this).closest("div.g");
       c(elem);
    })

function c(elem) {
$(elem).hide();
}
于 2012-04-29T17:33:54.087 に答える
1

関数c()を使用して:

$('.e').click(function(){
    c(this);
});

function c(element){
    $(element).prev().hide();
}

デモ: http: //jsfiddle.net/NQYN4/3/

于 2012-04-29T17:37:37.017 に答える
0

これは、jQueryのeach()メソッドを使用して実現できます。HTMLは同じままで、JavaScriptは次のようになります。

$(".e").each(function () {

  // $(this) refers to that particular link not all the links.
  $(this).click(function (e) {

    /**
     * as a precaution for preventing anchor
     * to redirect/scroll to location defined in "href" attribute
     */
    e.preventDefault();

    $(this).prev(".g").hide();
  });
});
于 2012-04-29T17:49:31.010 に答える