jQuery:以编程方式替换span内容的问题

时间:2014-08-24 09:17:21

标签: jquery html find closest

我有一个带有以下结构的div(使用Bootstrap 3),在这里面是一个带有类" votes":

的范围

我的HTML:

<div>
    Views: <span class="badge views">12</span>&nbsp;&nbsp;
    Votes: <span class="badge votes">0</span>&nbsp;&nbsp;
    <a href="#">Comments:</a> <span class="badge comments">5</span>
    <span class="pull-right">
        <button class="btn btn-default btn-xs btnVote">Vote</i></button>
    </span>
</div>

我的jQuery:

以下jQuery返回此span的内容,该内容始终是一个数字(在本例中为0):

var votes = $(this).closest('div').find('.votes').text();

现在我正在尝试替换此范围的内容,resp。通过单击同一div中的按钮为其添加1。 我使用了以下内容,但这并没有改变它:

$(this).closest('div').find('.votes').text(parseInt(votes) + 1);

OR

$(this).closest('div').find('.votes').html(parseInt(votes) + 1);

有人可以告诉我这里做错了吗?

提前非常感谢,蒂姆。

2 个答案:

答案 0 :(得分:2)

看起来应该没问题,虽然我总是在parseInt上使用基数。但是你可以更有效地做到这一点,而不是两次查找元素:

$(this).closest('div').find('.votes').text(function(i, text) {
    return parseInt(text, 10) + 1;
});

Working Example

答案 1 :(得分:1)

似乎工作正常或我想念一些事情?

HTML:

<div>
    Views: <span class="badge views">12</span>&nbsp;&nbsp;
    Votes: <span class="badge votes">0</span>&nbsp;&nbsp;
    <a href="#">Comments:</a> <span class="badge comments">5</span>
    <span class="pull-right">
        <button class="btn btn-default btn-xs btnVote">Vote</i></button>
    </span>
</div>

JS:

$(".btnVote").click(function(){
    var votes = $(this).closest('div').find('.votes').text();
    $(this).closest('div').find('.votes').text(parseInt(votes) + 1);
});

<强> Check JSFiddle Demo