如何使用jquery ajax 异步读取js文件中的数组

JavaScript010

如何使用jquery ajax 异步读取js文件中的数组,第1张

解决的方法如下:

1、先把得到的数组用alert(array)看是不是[object]。

2、如果不是,只是弹出这个数组的字符串的话;

3、那就 var array=eval("("+array+")")再array[0]["title"]就能得到了。

4、返回的如果不是json格式的数组,那么需要转换成json格式jQuery.parseJSON(data)

你要获取的是选中的checkbox值是吧?那你这样写,名为头图的给一个name,别的都给一个name.

这样写:

<input name="checkbox1" type="checkbox" value="头图" />头图

<input name="checkbox1" type="checkbox" value="头图" />头图

<input name="checkbox1" type="checkbox" value="头图" />头图

剩下的几个同理。

想取得值,这样写:

var checkbox1 = document.getElementsByName("checkbox1")

var checkboxAll1=""

for(var i=0i<checkbox1.lengthi++){

if(checkbox1[i].checked){

checkboxAll1+=checkbox1[i].value+","//将选中的值拼接,用“,”隔开

}

}

这里checkboxAll1就是你头图的所有选中的值,你把这个值传到action中处理,只要获得这个值,然后checkboxAll1.split(",")得到一个数组,数组元素就是你要的结果,然后遍历数组就可以了。

如果你每一个都有id,可以用js:

document.getElementById(这里是id值).value;

或者:$("#后边是id").val()就可以取到,但是这样不能判断你获取的值已经选中。你还需要挨个判断,所以,用我上边的方法,用for循环判断可以提高效率。希望对你有帮助。

js是单线程的,常见的问题就是一段复杂的JavaScript脚本会中断页面其它脚本执行,甚至会出现页面失去响应,这也就是为什么ajax的API要设计成异步的。所以,执行function

getid(id)时,先执行其他代码部分,再执行回调函数,即return

resultdata的执行顺序在ajax回调函数resultdata=xmlhttp.responseText之前,所以是得不到数据。

解决办法:针对Ajax请求返回的数据,建议在回调函数中处理吧。【如果你一定要这样用,可以使用一个递归的setTimeout不断去check

Ajax请求是否已经完成(resultdata是否已经被赋值),如果已经完成就使用result的值,退出递归,否则继续~~(网友介绍的方法,没试过,你可以试试)】