私はトラバースする必要がある単純な html 構造を持っています。何らかの理由で、再帰関数は、ネストされたノードでは「未定義」を返しますが、親ノードでは返しません。残念ながら、これはネイティブ js である必要があり、jQuery は必要ありません。ありがとう!
HTML:
<div id="container">
<div id="head">
<span id="left"><</span>
<span id="right">></span>
</div>
</div>
脚本:
var h = hasId(container, 'head');
var l = hasId(container, 'left');
var r = hasId(container, 'right');
console.log(h + " : " + r + " : " + l);
//[object HTMLDivElement] : undefined : undefined
function hasId(ele, id) {
for (var i = 0; i < ele.childNodes.length; i++) {
var child = ele.childNodes[i];
if(child.id == id) return child;
else hasId(child, id);
}
}