这怎么可能不警告0
(而是提醒50
)?
我需要相对于表格的td位置
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位置:)
答案 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);