私のコードでは、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;
、$array
is として宣言されている場所で$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 後の空白の配列は空白です。しかし、それは質問とは関係のない別の問題です。