0

我正在尝试找到一个好的解决方案来获得目标上方所有元素的高度。

所以循环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"]

4

2 回答 2

3

prev()只给你“直接在前面的兄弟姐妹”,而
prevAll给你“所有前面的兄弟姐妹”

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

并删除#id 中的:

<div id="#mytarget">=><div id="mytarget">

现场演示

文档:

prevAll

描述:获取匹配元素集中每个元素的所有先前兄弟,可选地由选择器过滤。

prev

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

于 2012-04-11T22:17:09.493 回答
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/

于 2012-04-11T22:15:27.433 回答