Javascript Jquery slideToggle can';无法使用$(此)。查找

Javascript Jquery slideToggle can';无法使用$(此)。查找,javascript,jquery,Javascript,Jquery,我想选择子元素“.comment”元素,每次单击“.item”元素时都要切换该元素。 html代码: <div class="row col-md-12 item"> <div class="col-md-4">Name</div> <div class="col-md-4">degree of usage</div> <div class="col-md-4">price</div> <d

我想选择子元素“.comment”元素,每次单击“.item”元素时都要切换该元素。 html代码:

<div class="row col-md-12 item">
  <div class="col-md-4">Name</div>
  <div class="col-md-4">degree of usage</div>
  <div class="col-md-4">price</div>
  <div class="col-md-12 comment">comment</div>
</div>

slideUp效果似乎可以正常工作,但是$(this).find无法捕获其中的“.comment”元素。

问题在于您使用的是箭头函数,因此此的上下文仍然在外部范围内,而不是引发事件的
.item
元素。如果需要此行为,请使用传统功能:

$('.item').on('click', function(e) {
  $('.item > .comment').slideUp(200);
  $(this).find('.comment').slideToggle(200);
});

您只需要在js代码中加入一个函数。我还刚刚注释掉了slideUp,因为slideToggle函数将覆盖它。见下文:

$('item')。在('click',函数(事件){
//$('.item>.comment').slideUp(200);
$(this).find('.comment').slideToggle(200);
});

名称
使用程度
价格
评论
尝试:

$('.item > .comment').slideUp(200);
$('.item').on('click', function(e) {
  $(this).find('.comment').slideToggle(200);
});

希望此帮助

箭头函数没有自己的
$('.item')。在('click')上,函数(事件)
将起作用。只需使用:
$(event.currentTarget)
而不是
$(此)
,如果您希望使用箭头函数是的,就是这种情况。我没有注意到。非常感谢。如果您将
slideUp()
移动到事件处理程序之外,打开新的事件处理程序时,它们不会关闭
$('.item > .comment').slideUp(200);
$('.item').on('click', function(e) {
  $(this).find('.comment').slideToggle(200);
});