为什么我的text()函数在我的脚本中不起作用?

时间:2014-02-23 05:09:38

标签: javascript jquery

我编写了一个脚本,该脚本调用一个返回某些数据计数的方法,然后将'P'标记的文本(通过id = count)更改为返回值。 我的剧本:

$(document).ready(function () {
    $("#count").text(function () {
        $.ajax({
            type: "POST",
            url: "./WebForm1.aspx/GetCountUnCheckNotification",
            data: {},
            async: false,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                return (response.d);
            },
        });
    });
});

有什么问题?

7 个答案:

答案 0 :(得分:2)

如果您的回复是json,那么您需要像下面那样解析它。如果您的回复不在json中,您可以直接将值分配给.text(response)

          $(document).ready(function () {

                     $.ajax({
                        type: "POST",
                        url: "./WebForm1.aspx/GetCountUnCheckNotification",
                        data: {},
                        async: false,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success:
                            function (response) {
                                var result=parseJSON(response)
                                $("#count").text(result.d)
                            },
                    });

                });
          });

答案 1 :(得分:1)

你有一个与AJAX如何工作有关的错误 - 你的功能没有返回任何东西。函数返回后会调用success回调,因为AJAX是异步

要完成这项工作,您必须使用AJAX调用启动,然后在其成功处理程序中设置<p>的文本:

$.ajax({
  ...
  success: function (result) {
    $("#count").text(result.d);
  }
})

答案 2 :(得分:1)

尝试:

$(document).ready(function () {
    $.ajax({
        type: "POST",
        url: "./WebForm1.aspx/GetCountUnCheckNotification",
        data: {},
        async: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            $("#count").text(response.d);
        },
    });
});

答案 3 :(得分:0)

$.ajax({
                        type: "POST",
                        url: "./WebForm1.aspx/GetCountUnCheckNotification",
                        data: {},
                        async: false,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success:
                            function (response) {
                               $("#count").val(response["id"]); // in case of input tag
                              $("#count").html(response["id"]); // in case of span/p/div
                            },
                    });

答案 4 :(得分:0)

您需要在成功回调中设置$("#count").text() ...

$(document).ready(function () {
                    $.ajax({
                        type: "POST",
                        url: "./WebForm1.aspx/GetCountUnCheckNotification",
                        data: {},
                        async: false,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success:
                            function (response) {
                                $("#count").text(response.d);
                            }
                    });
                }

答案 5 :(得分:0)

$ .ajax函数不返回任何内容。尝试这样的事情:

 $.ajax({
    type: "POST",
    url: "./WebForm1.aspx/GetCountUnCheckNotification",
    data: {},
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success:
        function (response) {
            $("#count").text(response.d);
        },
});

答案 6 :(得分:0)

由于异步操作的工作方式,它不起作用。基本上你要告诉$('#count')。text()立即将文本设置为匿名函数返回的内容。但该函数将在触发ajax事件后返回undefined。您必须将文本调用放在最终回调中;直到以后才执行:

$(document).ready(function () {
  $.ajax({
    type: "POST",
    url: "./WebForm1.aspx/GetCountUnCheckNotification",
    data: {},
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success:
    function (response) {
      $("#count").text(response.d);
    },
  });
});