繁体   English   中英

如何从ajax请求中获取价值?

[英]how can take value from ajax request?

我不能从ajax那里获得价值的一些辞职,其中json数据像这样来

在此处输入图片说明 请求

我想从ReviewPoint那里获取价值,然后在ajax成功块中操纵其他jquery。

但是问题是当我尝试使用显示“未定义”的警报框来打印值时,我无法取值

我的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);
    }
    })

响应是一个数组,因此您需要使用数组符号按索引访问它。 响应中也没有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');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM