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()、2回目の反復で使用できるものは何も返されません。

警告 :

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 に答える