0

我将从发布我的 javascript 开始。

    $(document).on('click','.remove-single-inbox-message', function(e){
    e.preventDefault();
    var messageid = $(this).data('messageid');
    var messages = $("#number-messages").html();
    var messages = parseInt(messages, 10);
    messages--;
    $.ajax({
        type: 'POST',
        url: '?a=profile_message_delete',
        data: {
            "messageid" : messageid
        },
        success: function(){
            $('.table-row'+messageid).hide();
            if(messages == 0){
                $("#insert-message-indicator").html("");
            } else {
                $("#insert-message-indicator").html("<strong><small>"+messages+"</small></strong>&nbsp;<i class='icon-envelope icon-white' rel='tooltip' title='New messages available'></i>");
        }
        }
    });
});

第一次递减工作正常,并显示新数字,但后面的数字显示 NaN。我究竟做错了什么?

4

1 回答 1

8

可能性 1:

您在发布时混合了 id,"#number-messages"应该是"#insert-message-indicator".

代替

var messages = $("#number-messages").html();

var messages = $("#number-messages").text();

您添加的"<strong><small>"html 无法解析为整数。

可能性 2:

这样做时,$("#insert-message-indicator").html("<...您正在擦除带有 id 的元素,#number-messages因此$("#number-messages").html()在第二次迭代时不会返回任何可用的内容。

警告 :

var messages = $("#number-messages").html();
var messages = parseInt(messages, 10);

是一样的

var messages = $("#number-messages").html();
messages = parseInt(messages, 10);

你可能应该有类似的东西

var messages_text = $("#number-messages").html();
var messages = parseInt(messages_text, 10);

因为您当前的代码令人困惑。

于 2012-11-30T16:45:58.673 回答