我坚持使用以下功能,试图取回一个值(dom 树的一部分)。
我没有收到有用的价值,而是获得了一个0/undefined
.
var findNodeForAttributeValue = function (node, innerXmlAttributeName, innerXmlAttributeValue) {
var indirectReturnVar='0';
if ((node.nodeType === 1)&&(node.hasAttribute(innerXmlAttributeName))) {
if (node.getAttribute(innerXmlAttributeName)==innerXmlAttributeValue) {
indirectReturnVar=node;
return indirectReturnVar;
}
}
if((node.hasChildNodes())&&(node.firstChild!=null)) {
Array.forEach ( node.childNodes, function (children) {
findNodeForAttributeValue(children, innerXmlAttributeName, innerXmlAttributeValue);
} );
return indirectReturnVar;
}
编辑
更新代码:
var findNodeForAttributeValue = function (node, innerXmlAttributeName, innerXmlAttributeValue) {
var indirectReturnVar='0';
if ((node.nodeType === 1) && (node.hasAttribute(innerXmlAttributeName))) {
if (node.getAttribute(innerXmlAttributeName) == innerXmlAttributeValue) {
indirectReturnVar = node;
return indirectReturnVar;
}
}
if ((node.hasChildNodes()) && (node.firstChild != null)) {
for (var fi=0, fiLen=node.childNodes.length; fi<fiLen; fi++) {
findNodeForAttributeValue(node.childNodes[fi], innerXmlAttributeName, innerXmlAttributeValue);
}
return indirectReturnVar;
}
}