具有特定ID的最近的前一个元素(带有prev())?

时间:2009-11-21 13:50:12

标签: javascript jquery

我有一个很大的div,里面有很多小div。说,

    <div id="parent">
 <div id="child1">
 </div>
 <div id="child1">
 </div>
 <div id="child2">
 </div>
 <div id="child1">
 </div>
 <div id="child1">
 </div>
</div>

如果我目前处于最后一个'child1',那么我如何使用prev()获得最顶级的child1?对我来说,当它到达'child2'时就会中断。

3 个答案:

答案 0 :(得分:7)

首先,您的HTML标记无效。文档中不应该有一个具有相同ID的元素。

阅读Element identifiers: the id and class attributes

id:

  

此属性为其指定名称   元件。此名称在a中必须是唯一的   文档。

上课:

  

此属性指定一个类名或   一组元素的类名。任何   可以分配元素的数量   相同的班级名称。多   类名必须用白色分隔   空间人物。

您可以使用parent:firstchild获取当前父元素中的第一个元素。

如果你当前在元素'parent'

的任何孩子身上,你可以使用这样的东西
$(this).parent().find("div:first-child");

答案 1 :(得分:4)

我想你想要这个:

$(this).prevAll('.child1').eq(0);

答案 2 :(得分:1)

 $(this).closest('.parent').find('.child1:first')

我改为了类,因为你真的应该只有一个页面中任何给定ID的元素