我的代码遇到了一个小障碍 - 下面是我的代码:
var actionsAllowed = $(packet).find('actionsAllowed');
这会在萤火虫控制台中返回给我以下内容:
对象[允许的操作]
单击“actionsAllowed”将我带入数据包并进入正确的部分,在那里我看到了列出的两个操作。
我可以展开对象并最终看到以下内容:
Object[actions]
0
actions
remove
remove()
attributes
[]
baseURI
"http://localhost:9000/testget#"
childElementCount
2
childNodes
NodeList[ActionOne, ActionTwo]
0
ActionOne
1
ActionTwo
length
2
item
item()
iterator
iterator()
__proto__
NodeListPrototype { item=item(), iterator=iterator()}
因此,在 NodeList 下,我看到了正确的操作。
我遇到的问题是我不知道如何将这些操作从那里取出并列出,甚至只是将它们作为单独的变量提供。
我尝试记录每个孩子:
function getActionsAllowed() {
var children = actionsAllowed.childNodes;
for (var i = 0; i < children.length; i++) {
console.log(children);
}
}
问题是,“.childNodes”一直返回为“未定义”。
还有另一种更好的方法吗?或者这是正确的,但我犯了一个错误?
谢谢你。
亲切的问候,
加里·舍吉尔
编辑:
只有一个结果的工作代码:
var currentState = $(packet).find('currentState').text();
var actionsBanned = $(packet).find('actionsBanned').text();
编辑2:
将代码更新为:
$(packet).find('actionsAllowed').each(function () {
var children = this.childNodes;
for (var i = 0; i < children.length; i++) {
var action = children[i].nodeName
console.log(action);
}
});
这有效 =) 它一一记录每个操作,因此它正在工作。只需选择如何将 console.log() 更改为更有用的东西(需要单独定义每个......)。
如果我遇到问题,将创建一个新线程并从这里链接它。
(我的相关主题:返回数组和子节点)