如何从ajax请求获取价值?

时间:2016-06-17 13:14:29

标签: javascript jquery json ajax

一些辞职我不能从ajax获取价值,其中json数据就是这样来的

enter image description here  请求

我想从ReviewPoint中获取价值,之后在ajax成功块中使用其他一些jquery。

但问题是当我尝试使用警告框打印价值时我无法获取价值它显示“undefine”

我的jquery代码是

var productid = $("#productid").text();
    $.ajax({
        url: '/ProductService/CheckUserExistFirst.asmx/rating',
        method: 'GET',
       // dataType: 'json',       
        data: { productid: productid },
        //contentType: "application/json; charset=utf-8",
        success: function (data) {

            alert(data.d.ReviewPoint);
            if (data.ReviewPoint < 1) {
                $("#rat-1").removeClass("fa fa-star-o");
                $("#rat-1").addClass("fa fa-star");
            }
            if (data.ReviewPoint < 2) {
                $("#rat-1,#rat-2").removeClass("fa fa-star-o");
                $("#rat-1,#rat-2").addClass("fa fa-star");
            }
            if (data.ReviewPoint < 3) {
                $("#rat-1,#rat-2,#rat-3").removeClass("fa fa-star-o");
                $("#rat-1,#rat-2,#rat-3").addClass("fa fa-star");
            }
            if (data.ReviewPoint < 4) {
                $("#rat-1,#rat-2,#rat-3,#rat-4").removeClass("fa fa-star-o");
                $("#rat-1,#rat-2,#rat-3,#rat-4").addClass("fa fa-star");
            }
            if (data.ReviewPoint < 5) {
                $("#rat-1,#rat-2,#rat-3,#rat-4,#rat-5").removeClass("fa fa-star-o");
                $("#rat-1,#rat-2,#rat-3,#rat-4,#rat-5").addClass("fa fa-star");
            }
        },
        error:function(err){
            alert(err);
    }
    })

1 个答案:

答案 0 :(得分:2)

响应是一个数组,因此您需要使用数组表示法通过索引访问它。响应中也没有d属性。试试这个:

var reviewPoint = data[0].reviewPoint;

另请注意,您可以通过为所有#rat-N元素提供一个公共类来干掉您的代码。然后,您可以使用eq()prevAll()设置所需元素的类。试试这个:

success: function (data) {
    var reviewPoint = data[0].reviewPoint;

    $('.rat').eq(reviewPoint).prevAll('.rat').addBack().removeClass('fa-star-o').addClass('fa-star');
});