从一个类中获取值并将文本添加到具有相同名称的所有类中?

时间:2018-04-18 20:53:49

标签: javascript jquery

我可能有两个或更多同名的课程。 用户点击一个按钮后,我想将+1计算到我拥有的计数器。所以我试过了:

var likes_count = parseInt($('.likes_count'+I).first().text()) + 1;

$('.likes_count'+I).first().text(likes_count);

首先,它会在点击后仅更改第一个elemente值,在其上添加+1,但第二个也不会更改。如果我先删除计数器会发疯。

如何更改所有这些?在具有相同名称的类上添加+1?

2 个答案:

答案 0 :(得分:2)

我评论了解释我的方法的代码,希望它有所帮助

$('button').click(function(){
  //get class index by splitting on 'likes_count'
  var classIndex = $(this).attr('class').split('likes_count')[1];
    
  var likes_count = parseInt($('.likes_count'+classIndex).first().text()) + 1;

//you were close, just apply pass function to each .text() like so:
$('.likes_count'+classIndex).text(function(){
  return likes_count;
});
});
.likes_count1{
  background: red
}
.likes_count2{
  background: green
}
.likes_count3{
  background: blue
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="likes_count1">0</button>
<button class="likes_count1">0</button>
<button class="likes_count2">0</button>
<button class="likes_count3">0</button>
<button class="likes_count3">0</button>
<button class="likes_count2">0</button>
<button class="likes_count2">0</button>

答案 1 :(得分:1)

您可以使用:

$(".likes_count").each(function() {
     $(this).text(parseInt($(this).text()) + 1);
 });

示例:

&#13;
&#13;
$(document).ready(function() {
  $("button").on("click", function() {
    $(".likes_count").each(function() {
       $(this).text(parseInt($(this).text()) + 1);
     });
   });
 });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="likes_count">3</div>
<div class="likes_count">5</div>
<div class="likes_count">7</div>

<button type="button">Increment</button>
&#13;
&#13;
&#13;