我试图将ajax的回复与我在响应ajax中添加的div内容进行比较。
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()
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内容进行比较?
答案 0 :(得分:2)
我假设数据变量是JSON。我强烈不推荐与JSON和DOM方式进行比较。
您可以与JavaScript变量进行比较。创建一个空变量,然后在第一次调用ajax函数时赋值。你可以这样比较。
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);
}
}