【问题标题】:Compare data returned from AJAX with div data将 AJAX 返回的数据与 div 数据进行比较
【发布时间】:2016-06-14 11:18:55
【问题描述】:

我想比较数据以确定是否需要重新加载 div。

    // <![CDATA[
$(function () {

    function reload (elem, interval) {
        var $elem = $(elem);
        var $original = $elem.html();


        $.ajax({
            cache : false,
            url : '/inbox-header.php',
            type : 'get',
            success : function (data) {

                var result = $.trim(data);
                var resu = $.trim($original);


                console.log(result);

                if (result == resu) {

                    alert('a');

                    setTimeout(function () {
                        reload(elem, interval)
                    }, interval);
                    return;
                }

                $elem.html(data);

                setTimeout(function () {
                    reload(elem, interval)
                }, interval);
            }
        });
    }

    reload('#inboxheader', 500);
});
// ]]>

当我在控制台中显示输出时,它看起来是一样的,但警报从不显示,所以它总是错误的。

更新:

这些变量的输出可以在这里找到,这里无法发布..

http://pastebin.com/abfCk7pH

【问题讨论】:

  • 使用console.log => console.log("result = " + $.trim(data) + "resu = " + $.trim($original)) 看看你看到了什么?
  • 使用开发者工具(在许多浏览器上通常是 F12)在此处设置断点 -> if (result == resu) 并悬停以找出您要比较的内容。也看看stackoverflow.com/questions/359494/…
  • 还在您的问题中提供您的 HTML,因为这可以为回答问题提供一些见解。
  • html的响应是:pastebin.com/abfCk7pH

标签: javascript jquery html ajax compare


【解决方案1】:

我不知道为什么,但是修剪功能没有完成他的工作。

这行得通:

$(function() {
function reload(elem, interval) {
    var $elem = $(elem);
    var $original = $elem.html();
    $.ajax({
        cache: false,
        url: '/inbox-header.php',
        type: 'get',
        success: function(data) {
            var opgehaaldedata = data.replace(
                /(\r\n|\n|\r)/gm, "");
            var orgineledata = $original.replace(
                /(\r\n|\n|\r)/gm, "");
            if (opgehaaldedata == orgineledata) {
                //alert('a');
                setTimeout(function() {
                    reload(elem, interval)
                }, interval);
                return;
            } else {
                $elem.html(opgehaaldedata);
                setTimeout(function() {
                    reload(elem, interval)
                }, interval);
                return;
            }
        }
    });
}
reload('#inboxheader', 500);

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多