首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较ajax的响应- jQuery

比较ajax的响应- jQuery
EN

Stack Overflow用户
提问于 2015-08-12 13:03:57
回答 1查看 2.1K关注 0票数 1

我试图将ajax的响应与我从响应ajax中附加的一些div内容进行比较。

代码语言:javascript
复制
function triggerLoc()
{
    var htmlCont = $('#Pre_Div').text();
    $.ajax({
      type : "POST",
      url : "url",                
      success : function(data){
           var txt = $(data).text();
           if(htmlCont != txt)
           {
               $('#Pre_Div').prepend(data);
           }
           else
           {
               alert('Content is same');
           }
          setTimeout(triggerLoc, 2000); 
      }
}

在将ajax成功数据转换为text()之后,它看起来就像这样

代码语言:javascript
复制
                      Name - B7
                      Location - cant-1
                      [12-08-2015 17:45:35 (27 minutes ago) ]





                      Name - A1
                      Location - pro-1
                      [12-08-2015 17:43:50 (29 minutes ago) ]






                      Name - B7
                      Location - cant-2
                      [12-08-2015 17:46:42 (26 minutes ago) ]





                      Name - A1
                      Location - pro-2
                      [12-08-2015 17:44:35 (28 minutes ago) ]

其中包括空格和换行。因此,设置超时每2秒,控件每次都会进入if(htmlCont != txt),即使文本是相同的。我的警报不会执行。如何将ajax响应与我附加的html内容进行比较?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 13:34:00

我假设数据变量是JSON。我高度不建议与JSON和DOM方法进行比较。

您可以使用JavaScript变量进行比较。创建一个空变量,然后在ajax函数的第一次调用时分配一个值。你可以这样比较。

代码语言:javascript
复制
var appliedData;

function triggerLoc() {

    $.ajax({
      type : "POST",
      url : "url",                
      success : function(data) {

           // Check applied data on DOM with new data is same

           if ( appliedData != data ) {

               appliedData = data;
               // Assign new value to global variable.

               $('#Pre_Div').prepend(data); 
               // I recommend change this line. Parse json to html and append it

           } else {

               alert('Content is same');

           }

           setTimeout(triggerLoc, 2000); 

      }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31966109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档