1

私はいくつかのタグ<table>内に持っています:<div>

<div class=outer>
  <div class=inner>
    <table>
      <tbody>
        <tr><td>col1</td><td>col2</td></tr>
        <tr><td>col1</td><td>col2</td></tr>
      </tbody>
    </table>
  </div>
</div>

jQueryの$.fn.position関数で行の位置を取得する場合:

console.log($('tr:first').position().top);

( examplediv.inner ) に設定するかどうかによって、異なる値が返されます。これは、行の包含ブロックがケースごとに異なるためだと思います。position: relative

div.innerの位置が に設定されているかどうかに関係なく、ボディに対する行の位置を計算する必要がありrelativeます。これを達成するエレガントな方法はありますか?それとも、DOM ツリーを上って、各祖先がposition: relativeであるかどうかを確認し、それに基づいてオフセットを追加する必要がありますか?

4

1 に答える 1

1

console.log($('tr:first').offset().top); だと思います。

于 2012-04-26T17:45:26.440 に答える