【发布时间】:2013-10-08 21:44:49
【问题描述】:
如果我有一组元素:
<div class="start">
<div>
<span>Text 1</span>
</div>
</div>
<div class="start">
<span>
<div>
<span>Text 2</span>
</div>
<div>
<div>
<span>Text 3</span>
</div>
</div>
</span>
</div>
在事先不知道元素结构具体是什么的情况下,检索嵌套最多的子元素(在本例中为“Text 1”和“Text 3”)的最佳方法是什么?
这是我正在使用的jsFiddle。
另外,如果之前有人问过这个问题,我深表歉意,但我找不到类似这个问题的具体问题。
【问题讨论】:
-
做一个while循环,直到current.children的长度为0。但是,你如何处理有多个div的情况,例如单个跨度的多个div?那么您将拥有多个嵌套最多的子元素。
-
@DavidThomas 这是同一个问题,但这里提出的解决方案侧重于递归,而使用 while 循环。
-
如果您的 HTML 没有最深节点作为唯一没有子节点和最后一个后代的节点,您将获得更完整的答案。 HTML 中的这两种简化都为您提供了不适用于一般情况的答案。在最深节点之后放置更多顶级子节点,如下所示:jsfiddle.net/jfriend00/8tC3a。
标签: jquery