1

私のコードでは、jQuery ajax からデータを取得し、それを配列変数に割り当てています。しかし、この配列変数で分割関数を呼び出すと、エラーが発生します (Google Chrome コンソールで見られるように):

Uncaught TypeError: Object  has no method 'split' 

関連するコードは次のとおりです。

$(function () {
    var originalData=[]; // Also tried var originalData=new Array(); and var originalData;
    $.ajax({                                      
      url: 'data.php',                    
      data: "",                        
      dataType: 'text',               
      success: function(data)          
      {
        alert(data); // THIS WORKS
      }
    });

    alert("a");  // THIS WORKS
    var dataArray =originalData.split("#");
    alert("abc "+ dataArray); //THIS DOESNT WORK
});

これをまったくクラックできません。ajaxデータのオブジェクト型を想定するのが間違っているのか、originalDataをデータに割り当てるのが間違っているのかわかりません。

また、php ファイルの出力はecho $array;$arrayis として宣言されている場所で$array="";あり、その後、 に文字列を追加し続けます$array

また、データコンテンツは次のとおりです。#195:93.0500:94.8500:93.0500:93.6500#196:94.0000:94.4500:92.0000:92.2500#197:91.0000:92.1000:87.6500:87.6500 :92.3000:88.5000:92.2000#200:93.1000:94.1000:90.7500:91.4000

ありがとう

編集

Aashray の回答の後、代入var originalData=[];するvar originalData="";とエラーが発生しません。ただし、分割後に空の配列が表示されるため、分割の機能は機能しません。

編集

空の配列の問題は、元の質問とは関係がないようです。問題は、分割関数の後に $.ajax 関数が呼び出されていることだと思います。少なくともアラートを追加すると、シーケンスが分割関数に関するアラートで始まり、$.ajax 内のアラートが最後に発生することがわかりました。したがって、split が呼び出された時点で入力データが $.ajax によって取り込まれなかった可能性が最も高いため、split 後の空白の配列は空白です。しかし、それは質問とは関係のない別の問題です。

4

1 に答える 1

6

originalData配列です。split()関数は文字列でのみ使用できます。のように、インデックスを使用して場所を参照しますoriginalData[0]

于 2013-02-27T05:47:25.023 に答える