jQuery单击函数以获取数据计数并应用于跨度计数

时间:2017-03-17 00:23:08

标签: javascript jquery html

它的晚期很可能是我完全失踪并且是愚蠢的,但任何想法为什么它不更新点击元素的数据值和跨度内的计数?



// simple like count function for demo
$('.action-like').on('click tap', function() {
  var currentCount = $(this).data('like-count');
  var newCount = currentCount + 1;
  $(this).data('like-count', newCount);
  $(this).find('.count').html(newCount);

  return false;
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p><a href="#" class="btn btn--secondary action-like" data-like-count="1">Like</a> <span class="small"><span class="count">1</span> person likes this</span>
</p>

<p><a href="#" class="btn btn--primary action-like" data-like-count="5">Like</a> <span class="small">You and <span class="count">5</span> other people like this</span>
</p>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

这是因为.count链接中没有a。您可以通过遍历父级来解决问题,然后执行find

像这样:

$('.action-like').on('click tap', function() {
  var currentCount = $(this).data('like-count');
  var newCount = currentCount + 1;
  $(this).data('like-count', newCount);
  $(this).parent().find('.count').html(newCount);
  return false;
});

答案 1 :(得分:0)

试试这个

$(this).parent().find('.count').html(newCount);

关键是,您的this引用了a的{​​{1}}。