1

次のような状況があります。

<div class='err'> 
Error 1
<span>
<a title='ignore'>x</a>
</span>
</div>

<div class='err'> 
Error 2
<span>
<a title='ignore'>x</a>
</span>
</div>

「エラー」はこのフォームに表示されます。私が欲しいのは、xがクリックされると、xが配置されているdivが消えることです。!?

$('.err span a ??').click(function() {
    $(this .err ??).hide();
});

ありがとう!

4

4 に答える 4

4

メソッドを使用できますclosest

$('.err span a').click(function(e) {
    // e.preventDefault();
    $(this).closest('div.err').hide();
});

http://jsfiddle.net/eYXff/

于 2012-10-10T23:10:22.493 に答える
1

これを試して:

$(function() {

  $('.err span a').on('click', function() {
    $(this).closest(".err").hide();
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class='err'>
  Error 1
  <span>
<a title='ignore'>x</a>
</span>
</div>

<div class='err'>
  Error 2
  <span>
<a title='ignore'>x</a>
</span>
</div>

私が使用しているパフォーマンスツールが正しい場合、最も近い方法と親の方法を使用する方が高速になります。ここで試してみてください: http://jsperf.com/parents-vs-closest-12829824

于 2012-10-10T23:20:39.167 に答える
1

これを試して

$('.err span a').click(function(e) {
    e.preventDefault();
    $(this).closest('div').hide();
});
于 2012-10-10T23:13:20.330 に答える
0

試す:

$(this).parent().next("div").hide();  
于 2012-10-10T23:22:45.473 に答える