0

script我在标签内分配了以下 JavaScript 对象。

<script>
  searchdata = {"employees":[{"name":"john doe","sal": "10000"}]};
</script>

searchdata在不同的地方使用,像这样:

function viewemp(){
  var emp =  searchdata.employees;
}

function viewemp1(){
  var emp1 =  searchdata.employees;
}

function viewemp2(){
  var emp2 =  searchdata.employees;
}

这一切都没有任何问题。

我正在看的是,我想searchdata从 jquery ajax 调用数据中设置(分配),即我想从 jquery ajax 响应中分配数据。

<script>
 $(document).ready(function () {
            var searchdata = new Object();
            $.ajax({
                type: "POST",
                url: "Services/GlobalData.asmx/FindEmpList",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: function (data) {
                    searchdata  = eval(data.d);
                }
           });
        });
 </script>

但是当我查看html“页面视图源”页面时,searchdata显示为空。它没有分配任何 jquery ajax 数据。我想查看 html“页面视图源”页面中返回的 jquery 数据。任何人都可以帮助我如何在“页面视图源”中查看我的 jquery 返回数据

我也可以在控制台日志中看到我的 json 数据。

4

2 回答 2

0

您无法通过 View > Source 查看数据,它不是源的一部分。它是单独添加到 JavaScript 环境中的数据。

于 2013-09-14T16:08:04.313 回答
0

当你声明一个变量时,这个变量是本地的,在function () {上下文中

$(document).ready(function () {
   var searchdata = new Object(); // <-- LOCAL
   ...
});

尝试这个:

公共变量:

 window.searchdata = (function() {

     var sdata = {};
     return {
        set: function(data){
           sdata = data;
        },
        get: function() {
           return sdata;
        },
        employees: function() {
           return sdata.employees;
        } 
     };

 }());

阿贾克斯:

 $(document).ready(function () {

        $.ajax({
            type: "POST",
            url: "Services/GlobalData.asmx/FindEmpList",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false,
            success: function (data) {
                searchdata.set(eval(data.d));
            }
       });
});

获取 searchdata 值的函数:

function viewemp(){
  var emp =  searchdata.get().employees;
}

function viewemp1(){
  var emp1 =  searchdata.employees();
}

function viewemp2(){
  var emp2 =  searchdata.get().employees;
}

searchdata.get().employeessearchdata.employees()返回相同的值,但您有更多关于如何返回值的选项。

也许它超出了您的需要,但可以帮助您了解如何使用这种类型的变量和上下文

于 2013-09-14T20:09:26.557 回答