tagName でフィルタリングされた特定の parentNode を取得するために使用する、getParentNode という名前の関数を作成します。コードは次のとおりです。関数が「未定義」を返す理由がわかりません。特定のparentNodeまたはnullを返す必要があると思います。orz! コードはhttp://jsfiddle.net/52ed6/2/にもあります
<html>
<body>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>
<div>
<span id="reply">Reply</span>
</div>
</li>
</ul>
<script>
// Get specific parentNode
function getParentNode(obj, selector){
if (obj.parentNode) {
if ( obj.parentNode.nodeName.toLowerCase() === selector ) {
return obj.parentNode;
} else {
getParentNode(obj.parentNode, selector);
}
} else {
return null;
}
}
var reply = document.getElementById('reply');
// The function getParentNode() novalid
// The next statement popup "undefined", why?
alert(getParentNode(reply, 'li'))
</script>
</body>
</html>