javascript - 为什么我的 getParentNode 函数返回未定义?

标签 javascript dom

我编写了一个名为 getParentNode 的函数,用于获取按 tagName 过滤的某些特定父节点。代码如下。我不明白为什么该函数返回“未定义”。我认为它应该返回特定的parentNode或null。哦! 代码也在 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>

最佳答案

getParentNode(obj.parentNode, selector);

需要返回

return getParentNode(obj.parentNode, selector);

关于javascript - 为什么我的 getParentNode 函数返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571663/

相关文章:

javascript - 在 .innerHTML 内部使用 '>' 会导致 HTML 语句过早关闭

javascript - BarcodeScanner2 = 类型错误 : Cannot set property 'innerHTML' of null

javascript - 获取 DOM 元素属性而不再次查询 DOM 并设置默认值(如果不存在)

jQuery DOM 遍历最佳实践

javascript - 开 Jest 按特定路径运行测试

javascript - lodash 模板中的返回函数值

javascript - Sails 1 - 违反一致性 : Attempting to tear down a datastore (`default` ) which is not currently registered with this adapter

dom - Youtube 元数据和 opengraph 标签

java - 如何使用dom解析器获取重复节点的唯一值

java - 在 Java 中将 XML DOM 打印到字符串时将前缀传播到子元素