Jquery 保留具有不同ID的元素的计数

Jquery 保留具有不同ID的元素的计数,jquery,counting,Jquery,Counting,我正在尝试创建一个大拇指向上/向下评级演示 但是,它保留了具有不同ID的元素的计数,请查看小提琴(单击向上或向下的两个大拇指以了解我的意思)。如何解决此问题?试试这个 $('.rating .voteup').on('click', function () { var up = $(this).closest('div').find('.up'); up.text(parseInt(up.text()) + 1); return false; }); $('.rating

我正在尝试创建一个大拇指向上/向下评级演示

但是,它保留了具有不同ID的元素的计数,请查看小提琴(单击向上或向下的两个大拇指以了解我的意思)。如何解决此问题?

试试这个

$('.rating .voteup').on('click', function () {
    var up = $(this).closest('div').find('.up');
    up.text(parseInt(up.text()) + 1);
    return false;
});
$('.rating .votedown').on('click', function () {
    var down = $(this).closest('div').find('.down');
    down.text(parseInt(down.text()) + 1);
    return false;
});

您对所有投票使用的是唯一的变量“ups”,因此它对所有投票保持相同的值。您应该改为使用.data(),以便每个投票都有自己的计数,或.attr('data-count',/**/)。您可以使用ajax将数据发回服务器。据我说,你不必担心。最后一次计数将从服务器接收,因此您无需担心唯一变量问题。谢谢。JShint表示它错过了line up.text(parseInt(up.text())+1)处的基数参数;这很关键吗?您可以使用
parseInt(up.text(),10)
$('.rating .voteup').on('click', function () {
    var up = $(this).closest('div').find('.up');
    up.text(parseInt(up.text()) + 1);
    return false;
});
$('.rating .votedown').on('click', function () {
    var down = $(this).closest('div').find('.down');
    down.text(parseInt(down.text()) + 1);
    return false;
});