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

试试这个

$('.err span a').click(function(e) {
    e.preventDefault();
    $(this).closest('div').hide();
});
于 2012-10-10T23:13:20.330 回答
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 回答
0

尝试:

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