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 に答える