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;
}

それはすべて問題なく動作しています。

私が見ているのは、searchdatajquery 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

[表示] > [ソース] からデータを表示することはできません。これはソースの一部ではありません。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;
        } 
     };

 }());

AJAX:

 $(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 に答える