2012-08-09 93 views
0

我有這個代碼的問題:jQuery和Ajax請求的數據問題

setInterval(function() { 
     var timed = $("#chMsgCont").find(".chatMsg:last-child"); 
     var timee = timed.attr("data"); 
     $.ajax({ 
      url: "./ajax/checknew.php", 
      data: {timestamp: timee}, 
      success: function(data) { 
       $("#chMsgCont").append(data); 
       if(data != null) { 
       var div = $('#chMsgCont'); 
       var o = div.offset().top; 
       div.scrollTop(o + 12302012); 
       } 
      } 
     }); 
    },1000); 

即使數據爲空,$("#chMsgCont)向下滾動,爲什麼呢?

+1

一個空字符串不等於空 – Musa 2012-08-09 21:50:27

+0

也許數據僅僅是空的或未定義的,不爲空以便它能夠傳遞 – 2012-08-09 21:50:31

+0

可以是數據是空字符串?? – Amareswar 2012-08-09 21:51:44

回答

1

試試這樣說:

if(data) 

或者這樣說:

if(data != null && data != "") 

基本上,if(data)被認爲是數據是假的在這些情況下:

  • 數據是 「」 或 ''=>空字符串

  • 數據爲假

  • 數據爲空

  • 數據未定義

+0

謝謝,它的工作原理:D – Denn 2012-08-09 22:02:01

+0

不客氣:) – sedran 2012-08-09 22:20:44

0

data只是空的,而不是null(未定義)所以它會通過,嘗試返回一些額外的PHP文件。

我喜歡做在PHP端以下內容:

/* suppose that i am evaluating an insert to my DB */ 
print(1); //if success 

print(0); //if error 
在JavaScript端

那麼,這樣做:

if(data == 1) //means success 

或只是做,如果你沒有在PHP側評估下面的內容:

if(data != null && data != '') 
+0

@jeff不好的英語,我糾正了我想說的 – 2012-08-09 21:55:56