我想将DOM元素ID设置为等于嵌套对象属性的完整地址。如何将对象属性地址转换为字符串?
我欢迎为DOM元素命名的替代方法,因此很清楚它所引用的对象属性是什么
var myBowtie = {"Hazard":{"Name":"Hydrocarbons under Pressure"},
"TopEvent":{"Name":"Loss of Containment"},
"Cause1": {
"Name":"Cause 1",
"Barrier1": {
"Name":"Barrier 1",
"Type":null,
"Health":null,
"DegFactor1":{
"Name":null,
"Barrier1": {
"Name":null,
"Health":null
}
},
},
},
"Cause2": {
"Name":"Cause 2",
"Barrier0": {
"Name":"New Barrier 1",
"Type":null,
"Health":null,
"DegFactor1":{
"Name":null,
"Barrier1": {
"Name":null,
"Health":null
}
},
},
},
"Consequence2": {
"Name":"Consequence 2",
"Barrier1": {
"Name":"New Barrier 1",
"Type":null,
"Health":null,
"DegFactor1":{
"Name":null,
"Barrier1": {
"Name":null,
"Health":null
}
},
},
},
};
displayBowtie("Barrier",myBowtie.Cause1);
function displayBowtie(elementType,objectName){
if (Object.entries(objectName).length > 0){ //ensure object has properties
const Entries = Object.entries(objectName);
for (const entry of Entries){ //loop through properties
if (entry[0].includes(elementType)){ //loop through each property that matches the name
//would like to have a string = "myBowtie.Cause1.Barrier1". I can then set this to a DOM element ID for accessing information later
}
}
}
}
您的json无效,验证后,它看起来应如下所示,然后您可以通过.
或[]
轻松访问子级>
如果您确定名称是唯一的,则可以通过id
将其用作html对象的[C0
myBowtie.Cause1.Barrier1.Name