你的需求是要取到$ref的所有值?
解决方案 »
- 求教:frame可以禁用某个JS吗?
- 用vml 实现web客户端画图 如何保存画过的图
- javascript如何调用asp的数据(菜鸟问题)
- 使用 Javascript Obfuscator 时候,为什么不能更改函数名和变量名???
- 怎么用正则表达式匹配变量s里的全部内容,谢谢。
- 急呀!!!!
- 求助(现场给分)...关于窗口连接问题。
- 一段js菜单脚本求注释。。。
- 创建ActiveXObject对象问题!
- 100分的简单问题, 如何点击一个图片实现清空功能?
- 谁能提供两个js插件,一、全屏自适应焦点图切换插件,二、列表图hover滑出层插件,详细看正文
- jquery,load 中文乱码怎么办呢?
path : '/',
"from" : {
path : '/from',
"city" : "南京",
"province" : "江苏"
},
"grilFriend" : {
path : '/grilFriend',
"boyFriend" : {
path : '/grilFriend/boyFriend',
"$ref" : ".."
},
"from" : {
path : '/grilFriend/from',
"$ref" : "$.from"
},
"language" : "English",
"name" : "章泽天",
"self" : {
path : '/grilFriend/self',
"$ref" : "@"
},
"to" : {
path : '/grilFriend/to',
"city" : "中关村",
"member" : {
path : '/grilFriend/to/member',
"$ref" : "$"
},
"province" : "北京"
}
},
"language" : "汉语",
"name" : "刘强东",
"self" : {
path : '/self',
"$ref" : "@"
},
"to" : {
path : '/to',
"$ref" : "$.grilFriend.to"
}
};//入口
var parse = function(o, root) {
root = root == null ? o : root;
var _ref;
for (var i in o) {
if (o.hasOwnProperty(i)) {
o[i]['_parent'] = o;
if (i == '$ref') {
_ref = computeRef(o[i], o, obj);
} else if ( typeof (o[i]) == 'object' && i != '_parent') {
parse(o[i], root);
}
}
}
if (_ref) {
o['$ref'] = _ref;
}
return o;
};var computeRef = function(regx, o, root) {
if (regx == '@') {
return o
} else if (regx[0] == '$') {
if (regx.length == 1) {
return root
} else {
var path = regx.split('.');
path.splice(0, 1);
return getNode(root, path)
}
} else if (regx.slice(0, 2) == '..') {//认定lz的路径书写格式为../../.. 没有做过多处理
var l = regx.split('/').length, p = o;
for (var i = 0; i < l; i++) {
if (p['_parent'])
p = p['_parent'];
}
return p
}
}
var getNode = function(node, path) {
if (path.length == 0) {
return node
}
var o = node[path[0]];
path.splice(0, 1);
return o ? getNode(o, path) : node
}console.log(parse(obj));
我后面问到朋友了,他说一个DOJO貌似可以解决,搜索了一下http://www.oschina.net/question/109503_120507最后,真心感谢这位高智商网友。
加了一个对象clone的方法就可以了,我开始直接复制就不行