如何选择父母的父母?

时间:2013-05-30 18:18:05

标签: javascript jquery jstree

jstree看起来像这样:

<ul>
    <li id ="head" ><a href="#">TITLE</a>
        <ul>
            <li id="body"><a href="#">BODY</a>
               <ul>
                  <li id="foot"><a href="#">FOOTER</a>
                  </li>
               </ul>

            </li>   
        </ul>
    </li>
</ul>

这基本上是一棵深度为3的树。

我只是想知道是否可以从ID“head

中访问ID“foot

类似

             jQuery(#foot).parent().parent();
or       
             jQuery(#foot).parent().parent.attr("id");

或类似的东西

4 个答案:

答案 0 :(得分:2)

ID应该在您的网页上是唯一的,因此您不应该有多个具有相同ID的元素,因此您应该只能使用$('#head')来选择它。

在你的情况下,我想你想要使用一个类'head',它可能会在你的列表中多次出现。

实现它的最简单方法是使用jQuery closest()。它找到第一个匹配给定选择器的父。

$('#foot1').closest('.head')

http://api.jquery.com/closest/

答案 1 :(得分:0)

您始终可以使用parents方法:

$('#foot').parents('#head');

虽然,由于头部有ID,您可以直接查找:$('#head')

答案 2 :(得分:0)

你冷写:

$('#' + $('#foot').parent().parent().parent().parent().prop('id')).do something with head

请务必阅读.prop()&amp;的区别。 .attr()

答案 3 :(得分:0)

假设这些是页面上唯一的<ul><li>元素。

 $('#foot').parents('li:last').attr('id');

应该为id提供head

parents()函数列出了从最接近到最远的元素的父元素。因此,最后一个li元素将是ID为head的元素。

Fiddle here.