Javascript 通过ID访问节点
这可能是个愚蠢的问题,但是 我只是使用jquery来访问对象:Javascript 通过ID访问节点,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,这可能是个愚蠢的问题,但是 我只是使用jquery来访问对象: obj["surveySpec"]["3"]["Survey"]["5"]["description"]; 问题是,根据结果,它可以是不同的长度,保持不变的是42333的id 有没有办法搜索该ID并返回值 我试过了 var result2 = $.grep(obj2, function(e){ return e.id === 42333; }); 但那没用 目标是: Object Object id:1
obj["surveySpec"]["3"]["Survey"]["5"]["description"];
问题是,根据结果,它可以是不同的长度,保持不变的是42333的id
有没有办法搜索该ID并返回值
我试过了
var result2 = $.grep(obj2, function(e){ return e.id === 42333; });
但那没用
目标是:
Object
Object
id:1
registration:"NA123"
serviceVersion:"V2"
surveySpec:Array[7]
0:Object
1:Object
2:Object
3:Object
Survey:Array[15]
0:Object
1:Object
2:Object
3:Object
4:Object
5:Object
description:"survey results, 5, 2 and 3"
id:42333
items:Array[3]
name:"survey results"
value:"standard"
看起来这可能就是你要找的东西。
var测试={
id:1,
项目:[
{
id:11,
描述:“三个”,
调查:[
{
id:121,
描述:“一个”
},
{
身份证号码:122,
描述:“两个”
}
]
},
{
id:12,
描述:“七”
},
{
id:13,
描述:“四个”,
调查:[
{
id:131,
描述:“五个”
},
{
身份证号码:132,
描述:“六”
}
]
}
]
};
函数findById(obj,id){
如果(obj){
if(obj.id==id)
返回obj;
for(obj中的var键){
if((typeof obj[key]).toLowerCase()!=“字符串”&&
(对象的类型[键]).toLowerCase()!=“数字”){
var result=findById(obj[key],id);
如果(结果)
返回结果;
}
}
}
返回null;
}
var结果=findById(测试,131);
console.log(“结果:”);
控制台日志(结果)代码>请序列化示例对象并以字符串的形式发布,如果我序列化整个对象,它将非常有用。我会尽量减少一点。P创建一个示例并作为字符串提供?谢谢,我已经尝试过了,但是当我尝试将其输出到控制台时,它说mrVar没有定义。在循环之外定义myVar,现在尝试代码,我编辑了它。我会尝试(并且我将innerObject更改为innerObject)
var myVar = '';
$.each(obj["surveySpec"],function(index,object){
$.each(obj["survey"],function(ind,innerObject){
if(innerOject.id === 42333){
myVar = innerObject.description;
return false;}
});
});