Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过ID访问节点_Javascript_Jquery_Arrays_Object - Fatal编程技术网

Javascript 通过ID访问节点

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

这可能是个愚蠢的问题,但是

我只是使用jquery来访问对象:

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;}
      });
    });