我如何用jQuery遍历祖先?

cho*_*ovy 1 javascript jquery

如何使用jQuery遍历祖先?

当前代码陷入递归循环:

HTML:

<html>
    <body>
        <div>
            <ul>
                <li></li>
            </ul>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

JS:

function traverse($node){
  while ( $node.get(0) !== $("html").get(0) ) {
    console.log($node);
    traverse($node.parent());
  }

}

//traverse($("ul li"));
Run Code Online (Sandbox Code Playgroud)

要观察问题,请取消注释最后一行,但要注意它可能会冻结您的浏览器.

在JSFiddle上也一样:http://jsfiddle.net/WpvJN/1/

Jon*_*ski 5

您可以通过以下方式获取集合.parents()并进行迭代.each():

$('ul li').parents().each(function () {
    console.log(this);
});
Run Code Online (Sandbox Code Playgroud)