position()和表格

时间:2011-08-16 18:28:26

标签: jquery

这怎么可能不警告0(而是提醒50)?

我需要相对于表格的td位置

http://jsfiddle.net/vxVCE/

HTML:

<div style="height:40px"></div>
<div>
    <table id="tbl">
        <tr>
            <td id="td1">linje 1</td>
        </tr>
        <tr>
            <td id="td2">linje 2</td>
        </tr>
    </table>
</div>

JS:

var elm = $('#td1');
var position = elm.position();
alert(position.top);

编辑: 我需要相对于表格的tr位置:)

3 个答案:

答案 0 :(得分:3)

position: relative;添加到表格中。这样做会使其警报0.否则,它会找到相对于文档的位置。

答案 1 :(得分:1)

因为它顶部 - 因此它


身体的填充为10px 表格上方的div高度为40px

因此它会提醒“50”(10 + 40 = 50

答案 2 :(得分:1)

@Neal已经很好地解释了为什么它给出了50.这是第二部分:

要获取位置w.r.t到表格,从td顶部减去表格的顶部:

alert(position.top - $('#td1').closest('table').position().top);

演示:http://jsfiddle.net/mrchief/vxVCE/1/

注意:根据您的HTML / CSS,您可能不得不使用表格offset

alert(position.top - $('#td1').closest('table').offset().top);