2014-10-30 84 views
0

我试图让ul元素中的所有以前的孩子都拥有相同的班级名称,而不是“active”元素。jQuery:以前的班级名称儿童

HTML例如:

<ul class="board-album"> 
    <li class="album-item item-left"></li> 
    <li class="album-item item-right"></li> 
    <li class="album-item item-left"></li> 
    <li class="album-item item-right"></li> 
    <li class="album-item item-left"></li> 
    <li class="album-item item-right"></li> 
    <li class="album-item item-left"></li> 
    <li class="album-item item-right"></li> 
</ul> 

所以我需要用类来获得高度关之前的儿童“项目左”,然后高度关“项目 - 右”。

jQuery的例子:

$('.item-left').each(function(){ 
    $(this).prevAll().outerHeight(); 
}); 

我也做了一个JSFiddle显示类似我的问题的东西,但事情是,这将是与li元素内的图像,这样的高度会有所不同。

如果有什么不清楚的地方,请告诉我。

例子: 最后item-left只能得到每一个以前儿童相同的类名和同为item-right

+0

你的问题是什么? – 2014-10-30 22:44:49

+0

问题是,它不能使以前的孩子获得相同的类名。我需要的是一个解决方案,以获得以前的儿童身高相同的类名,无论是'项目左'还是'项目右' – 2014-10-30 22:49:57

回答

1

组合的高度。如果我理解正确的话,你只是想知道在一个先前元素的高度的列,对吗?我点击时不知道这是不是你想要的。您可以将其粘贴到小提琴中,然后单击其中一个项目。

请记住,它仍然会计算那些绝对定位的元素。

$('.album-item').click(function(){ 
     selector = '.'+this.className.match(/item-[A-z]*/)[0] 
     height = 0 
     $(this).prevAll(selector).each(function(){ 
      height+=$(this).outerHeight() 
      } 
     ) 
     alert(height) 
     } 
    ) 
+0

谢谢,正是我需要的!我不打算对此使用点击功能,但我已经删除了完整的点击功能,因此它可以自行运行。再次,谢谢! :) – 2014-10-31 06:39:52