在我的代码中,我从jQuery ajax获取数据并将其分配给数组变量。但是当我在这个数组变量上调用split函数时,我得到了错误(如谷歌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数据的对象类型或将orginalData分配给数据时犯了错误。
此外,php文件的输出为echo $array;
,其中$array
被声明为$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#198:88.0000:89.0000:86.0000:87.9000#199:89.0000:92.3000:88.5000:92.2000 #200:93.1000:94.1000:90.7500:91.4000
由于
修改
在Aashray的回答之后,将var originalData=[];
替换为var originalData="";
我没有收到错误。但是,split的功能不起作用,因为它在拆分后显示一个空白数组。
修改
空白数组的问题似乎与原始问题无关。我认为问题是在分割函数之后调用$ .ajax函数。至少当我发出更多警报时,我发现序列以分裂函数周围的警报开始,并且$ .ajax内的警报发生在最后。因此,拆分后的空白数组是空白的,因为在调用split时,很可能它的输入数据没有被$ .ajax填充。但那是另一个与问题无关的问题。
答案 0 :(得分:6)
originalData
是一个数组。 split()
函数只能用于字符串。
使用索引来引用位置,例如originalData[0]
。