我正在查看JS控制台中的一个节点,该节点有一个我需要访问的子节点。假设父节点称为“块”,子节点称为“ details_49_2”。
>blocks:
>details_49_2:
id : '2'
>stuff:
>lots_of_stuff:
>lots_more_stuff:
该子节点充满了我需要获取的信息;唯一的问题是节点在页面之间变化,因此我无法将其名称硬编码为变量。例如,如果我对信息blocks.details_49_2.id进行硬编码,则可以很好地访问信息,但是它是可变的,具体取决于页面。我知道这是唯一的子节点和第一个子节点,但是我不确定如何从JS获取该节点的名称。 childNodes和getFirstChild似乎只处理实际的HTML DOM元素。
答案 0 :(得分:1)
如果可以在运行时确定属性名称,则可以使用方括号访问表示法来访问它:
const name = 'details_42_2';
const subObject = blocks[name];
但是,如果您无法确定其名称,但您知道它是blocks
的唯一属性,则可以使用Object.values():
const subObject = Object.values(blocks)[0];
这里是一个示例:
const data = { blocks: { details_42_2: { id: '2' } } };
console.log(Object.values(data.blocks)[0]);