javascript - 如何更新重复列表中的特定范围文本?

标签 javascript jquery ajax

我想在单击“有用”span class="upvote" 时更新范围中的 class="count" 文本。我使用 ajax 更新数据库中的值,然后使用结果显示在计数范围中。

但是,使用下面的代码它会更新所有这些。

我有以下 html

<div class="question">  
    <span class="upvote" data-id="1" data-cat="question"> Helpful <span class="count">2</span></span>   
</div>

<div class="answers">   
    <span class="upvote" data-id="3" data-cat="answer"> Helpful <span class="count">15</span></span>
    <span class="upvote" data-id="4" data-cat="answer"> Helpful <span class="count">66</span></span>
    <span class="upvote" data-id="6" data-cat="answer"> Helpful <span class="count">0</span></span> 
</div>

这是我的 jquery

$('.upvote').click(function(event) {                
    $.ajax({
        url: 'http://localhost/ask/upvote',
        type: 'POST',
        data: {
            cat_id: $(this).data('id'),
            category: $(this).data('cat'),
        },
        dataType: 'json',
        success: function(json) {               
            $(".upvote span").text(json);
        }
    });

    event.preventDefault();
});

最佳答案

您可以保存所点击的赞成的引用

$('.upvote').click(function(event) {                
    let $clicked = $(this);  //reference saved
    $.ajax({
        url: 'http://localhost/ask/upvote',
        type: 'POST',
        data: {
            cat_id: $(this).data('id'),
            category: $(this).data('cat'),
        },
        dataType: 'json',
        success: function(json) {               
            $clicked.find( ".count" ).text(json); //observe changes in this line
        }
    });

    event.preventDefault();
});

关于javascript - 如何更新重复列表中的特定范围文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47589557/

相关文章:

javascript - Chrome-Javascript : Negative Exponent Calculation is wrong for > -3

javascript - 如何使用 JQuery 找到正确的 HTML 元素选择

jQuery在表单字段中设置ajax返回值

javascript - 如何从第一页的按钮重新加载第二页?

javascript - FullScreen 在点击时有效,但在加载时无效

asp.net - 我应该将 JavaScript 放在哪里 - 页面还是外部文件?

javascript - 如何防止用户在不是他们的 'turn' 时激活 jquery 点击功能?

javascript - 使用 data() 添加一个 div

javascript - 从 ajax 读取值以 json 格式返回

php - 将验证从 Controller 传递回 ajax 函数