【发布时间】:2011-08-18 18:02:10
【问题描述】:
在 JavaScript 中,您可以像这样获取 XML 节点的子节点...
var children = xml.childeNodes;
如何获取对象的子对象?
var obj = {
prop1: 'stuff',
prop2: 'things',
prop3: 'stuff-n-things'
}
第二轮
给定一个像这样的对象..
var Obj = {
levelOneProp1: 'stuff',
levelOneProp2: 'things',
levelOneProp3: {
levelTwoProp1: 'moreStuff',
levelTwoProp2: 'morethings',
levelTwoProp3: 'morestuff-n-things'
}
}
我想知道Obj 中的哪些属性有子级,以便我可以递归方式遍历它们。目标是能够提供具有(理论上)无限数量的子元素的数据集,并将它们的值应用于输入元素......这是我到目前为止所拥有的。
function applyData( dataSet ){
var hasChildren = false;
for(var i = 0; i < dataSet.childNodeArrayGoesHere.length; i++){
if(dataSet.detectChildNodesHere){
hasChildren = true;
}
}
if(hasChildren){
for(var j = 0; j < dataSet.childNodeArrayGoesHere.length; i++){
applyData(dataSet[j]);
}
} else {
//apply the key/value pair to an input element
$("input[name" + dataSet.propertyName + "]").val(dataSet.propertyValue);
}
}
【问题讨论】:
-
请避免大幅改变问题的上下文。当你这样做时,你会使一些现有的答案变得无用。请尝试创建另一个问题。
-
@ates - 我有点明白你在做什么,但问题只是澄清了 IMO。我仍然只需要“子节点”的集合来完成我的功能。
-
我只需要检测一个属性是否本质上是一个“结束节点”......抱歉模棱两可。
标签: javascript json parsing