Как увеличить счетчик внутри цикла, используя jQuery? - PullRequest
0 голосов
/ 30 января 2019

Я хочу увеличивать счетчик комментариев для каждой записи на единицу каждый раз, когда нажимается «btn-like».

@foreach (var item in Model.PostComments)
            { 
<a id=" @item.Id" href="#" class="btn-sm btn-default btn-like"><span class="glyphicon glyphicon-thumbs-up"></span></a>
<span id="commentcounter_@item.Id">@Model.CommentMetrics.Where(a => a.PostCommentId == item.Id).Sum(a => a.VoteValue)</span>
}

Пока код jQuery равен

<script>
    $(document).ready(function () {
                $('a.btn-like').click(function (e) {
                         e.preventDefault();
            $(this).toggleClass("btn-success");
            $(e.target.id).text(parseInt($(e.target.id).text()) + 1);
                    $(this).prop("disabled", true);
                    $('#commentcounter').text(function (i, oldVal) {
                        return parseInt(oldVal, 10) + 1;
                    })
                     $.ajax({
url: '@Url.Action("CommentUp", "Posts")',
data: { id: this.id }
});
});
});
</script>

1 Ответ

0 голосов
/ 30 января 2019

Вы можете изменить следующим образом ваш код:

@foreach (var item in Model.PostComments)
            { 
<a id=" @item.Id" href="#" class="btn-sm btn-default btn-like"><span class="glyphicon glyphicon-thumbs-up"></span></a>
<span id="commentcounter_@item.Id" class="commentCountClass">@Model.CommentMetrics.Where(a => a.PostCommentId == item.Id).Sum(a => a.VoteValue)</span>
}

А вот код javascript при нажатии btn для каждого комментария записи будет увеличиваться.И я предположил, что каждый диапазон содержит числовое значение.

<script>
    $(document).ready(function () {
         $('a.btn-like').click(function (e) {
             e.preventDefault();
             //Here what this code will do. If you will click on any "btn-like". then this will increment the commentcounter for each record by one.
             // Here code start for increment counter

             $('.commentCountClass').each(function(){

                     var currentVal = parseint($(this).text());
                     var updatedVal = currentVal + 1;
                     $(this).text(updatedVal );

              });
         });
   });
</script>

Слева от кода, который я удалил, потому что я не знаю, что вы пытаетесь делать с этим кодом.Вы можете настроить свой код с моим кодом.Спасибо.

...