js中Object 没有提供length属性,只能通过循环对象属性来创建一个新数组
var temp = JSONparse('{"1":"1","2":"3","3":"3","4":"1","5":"4","6":"3"}');var tempArr = [];
for (var i in temp) {
tempArr[i] = temp[i]
}
alert(tempArrlength)
然后,重点是你PHP的$arra是值对数组吗?如果键名没用的话你直接用array_values就行了
<php $arra = ["1" => 1, "2" => 3, "3" => 3, "4" => 1, "5" => 4, "6" => 3] >var temp = JSONparse('<php echo json_encode(array_values($arra)) >');
alert(templength)目前Window7的机器上,使用IE9浏览器的用户很多,但是IE9在兼容性上做了较严格的控制,导致很多程序在chrome,firefox,ie6,ie7,ie8上可以正常运行,在ie9上确出现了各种问题,这里要说的其中一个问题,就是对象为定义,特别是单一个页面上嵌套了多层iframe/frame的时候,往往会出现:
Array对象未定义
$对象未定义
jQuery对象未定义
Json对象未定义
undefined对象未定义
对象未定义
这种情况,我们一开始,
1,首先当然先检查是否JS文件路径引用不对,或者是Html文件的设置编码格式不正确;
2,假如这些基本的都正常没问题,我们再去检查,是否我们编写的js文件放在自己引用的第三方js插件或者框架后面,按照Dom解析方式,我们最好让自己的js文件放在最后解析。
假如上面两步都保证正常,并且在chrome,firefox,ie6,ie7,ie8上可以正常运行,那么就有可能是我们要强调的问题,ie9严格性问题,这里我们可以在页面上处理,添加
<meta
>首先json 对象一定是 大括号{ 开始 ,大括号}结束
int i = jsonStringindexOf("{");
jsonString = jsonStringsubstring(i);处理前部分
int j = jsonStringlastIndexOf("}");
jsonString = jsonStringsubstring(i-1,j+1);处理前后部分
jsonString = jsonStringreplaceAll("\\\\",""); 处理反斜杠
//可以通过解析方法解析json字符串了,不过处理过程每一步最好打印校验下,没问题就解析成JSONObject
这里我用的 cnhutooljsonJSONUtil 来解析的、看你这写法,应该是jsp跟script文件夹在同一个目录下
可是看你上面应用的css,太容易让人误会了。。
貌似是
jsp跟js文件在同一个目录下,用相对路径的话,直接写dojoxdjs就是啦。
出现上述问题:要么语法结构不是你这么写的。要么就是js文件没有正确引用进来
也有可能是浏览器的兼容问题,也可以换换试试json字符串应该还没有转换成对象吧
如:var a="{data:[{title:'x',content:'x1'},{title:'x',content:'x2'}]}";
a = eval("("+a+")"); 或者JSONparse(a);后者低级浏览器不支持
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)