错误:未定义的数据

时间:2014-11-12 13:16:53

标签: javascript jquery ajax

我有这个功能每10秒钟获取一次新广告,但我收到了错误

function getnewads(){
    var newer ;
    // This fetches old value from 'data-value' attribute
    var old_val = $("#new_data").data('value');
    $.ajax({
        type: "POST",
        url: "users/process.php",
        data:{
            getnewads: "getnewads"
        },
        cache: false ,
        dataType: 'json',
        async: false
    }).success(function(dat){
        if(dat.status == 'success'){
            $("#new_data").empty();
            for(i = 0;i < dat.counts; i++){
                newer = dat.counts + old_val; alert(old_val); /// problem att old_val alerts Object object.
                if(newer > 0){
                    $("#new_data").html('<div class="added_ad">'+ newer +' new ads </div>');
                    // This set 'data-value' attribute to #new_data element
                    $("#new_data").data('value',newer);
                    $("#new_data").show();
                }else{$("#new_data").hide();$("#new_data").data('value',0);}
            }
        }
    });
}

这是我的html div

 <div id="new_data" class="new_data">
 </div>

我已经测试了一切正常,old_val警告Object object 我究竟做错了什么 ? 感谢

如果我提醒old_val,则会显示Object object

如果我提醒old_val.val()其节目undefined old_val

1 个答案:

答案 0 :(得分:1)

使用.attr()代替.data()

.data()

上存在与浏览器不兼容的已知问题

将您的代码更改为

var old_val = $("#new_data").attr('data-value');   

从对象中获取val。

注意:.attr()是get和set,如果你想为这个obj设置一个val使用

$("#new_data").attr('data-value',newvalue);