2012-11-30 32 views
0

我將從發佈我的javascript開始。整數顯示爲NaN

$(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。我究竟做錯了什麼?

+0

你應該避免兩次聲明相同的變量(消息)。 –

+0

任何簡短的解釋爲什麼?只是好奇。 – user1683645

回答

8

可能性1:

你同時發佈和"#number-messages""#insert-message-indicator"混合ID。

更換

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); 

因爲你當前的代碼是混亂的。

+0

好吧,我剛剛注意到的另一件事是,我忘了把id選擇器放在相關的元素@回調函數中,所以沒有元素從第一次點擊後收集值。 – user1683645

+0

我做了:var messages = parseInt($(「#number-messages」).text(),10);工作就像一個魅力:)感謝您的幫助! – user1683645