JQuery获取每个前一个元素的高度

时间:2012-04-11 22:09:24

标签: jquery jquery-selectors

我正在努力找到一个很好的解决方案,让所有元素的高度都高于我的目标。

循环prev()函数!关于我如何处理的任何想法?

<div>
<div style="height:50px;width:100%"></div>
<div style="height:12px;width:100%"></div>
<div style="height:23px;width:100%"></div>
<div style="height:56px;width:100%"></div>
<div id="#mytarget"><p>HERE</p></div>
</div>

$('#mytarget').prev().each(function() {
    alert($(this).outerHeight());
});

它会触发["56","23","12","50"]

2 个答案:

答案 0 :(得分:3)

prev()仅为您提供“紧接在前的兄弟姐妹” prevAll为您提供“所有兄弟姐妹”

$('#mytarget').prevAll().each(function() {
     alert($(this).outerHeight());
});

然后移除ID中的#

<div id="#mytarget"> =&gt; <div id="mytarget">

LIVE DEMO

<强>文档:

prevAll

  

描述:获取匹配元素集中每个元素的所有前面的兄弟,可选择通过选择器进行过滤。

prev

  

描述:获取匹配元素集中每个元素的紧接在前的兄弟,可选择由选择器过滤

答案 1 :(得分:1)

尝试prevAll()

var result=[];
$('#mytarget').prevAll().each(function() {
    result.push($(this).outerHeight());
});
alert(result);

并且还要改变

<div id="#mytarget"><p>HERE</p></div>

为:

<div id="mytarget"><p>HERE</p></div>

演示:http://jsfiddle.net/JkDP6/