我将首先发布我的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> <i class='icon-envelope icon-white' rel='tooltip' title='New messages available'></i>");
}
}
});
});
第一次递减工作正常,显示新数字,但后面的数字显示NaN。我做错了什么?
答案 0 :(得分: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("<...
时,您正在删除标识为#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);
因为您当前的代码令人困惑。