我可能有两个或更多同名的课程。 用户点击一个按钮后,我想将+1计算到我拥有的计数器。所以我试过了:
var likes_count = parseInt($('.likes_count'+I).first().text()) + 1;
$('.likes_count'+I).first().text(likes_count);
首先,它会在点击后仅更改第一个elemente值,在其上添加+1,但第二个也不会更改。如果我先删除计数器会发疯。
如何更改所有这些?在具有相同名称的类上添加+1?
答案 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);
});
示例:
$(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;