2013-07-07 52 views
0

我有一个HTML结构lik3找到第一个父元素而不是根父元素之前

<div> 
    <ul> 
    <li> 
     <div>Other elements</div> 
     <div> 
      <ul> 
      <li class='base-parent parent'> 
       <div>Base Parent DEFINED</div> 
       <ul> 
       <li class="parent parent-level-1"> 
        <div class="child">Inner Parent Level 1</div> 
        <ul> 
        <li class="parent parent-level-2"> 
         <div class="child">Inner Parent Level 2</div> 
         <ul> 
         <li class="parent parent-level-3"> 
          <div class="child">Innermost child 1</div> 
         </li> 
         <li class="parent parent-level-3"> 
          <div class="child">Innermost child 2</div> 
         </li> 
         </ul> 
        </li> 
        </ul> 
       </li> 
       </ul> 
      </li> 
      </ul> 
     </div> 
     </li> 
    </ul> 
    </div> 

虽然我能找到div.child的最接近父李,我需要知道我怎么能找到第一在li.base-parent之下的div.child类的父LI元素,排除了base-parent。

+1

您可以添加HTML注释,或一些文本,在该代码明确显示你需要找到哪些元素,并从那里你遍历开始? –

+0

你到现在为止尝试过什么?我们需要看到代码来找出你想要实现什么 – manraj82

+0

http://api.jquery.com/parentsUntil/检查这是否解决了你的问题 – manraj82

回答

1

你可以很容易地使用parents()

$('.child').parents('li.parent:not(.base-parent)').last(); 

这里有一个jsFiddle

+0

嗨,BenM,我真的很感谢解决方案。我只是想直到直接父节点LI从底部向上DOM树。我只是想知道是否可以找到自下而上的方法以防万一。 – h1m4l

+0

这是自下而上的?它从'.child'的第一个'li.parent'父项开始并运行。 – BenM

+0

再次感谢BenM。这工作绝对好......我应该要求从我的div.child类中找到立即的第一个父级LI,而不会超出li.base-parent – h1m4l

-1

似乎有不合理的div数量。你听说过ID吗?

然后这个任务就简单多了。

$('#myide').whatever(); 
+0

DOM树,这并不是真的提供了解决问题的方法。除此之外,ids是让代码不可重用的方式,因为每页只能有一个 –

相关问题