2015-12-02 98 views
2

我在页面中有两个表。我使用jQuery的$.offset().top打印他们的顶级坐标。使用jQuery的索引获取表的偏移位置

$("table").offset().top 

打印第一个表格偏移量。 $("table")是否选择所有表格?它如何打印第一张桌子的坐标?

,当我尝试打印使用$("table")[1]第二表的偏移位置,它说:$("table")[1].offsetundefined

的jsfiddle环节是, http://jsfiddle.net/JfGVE/805/

注:我可以使用表的ID,但我得到的结果我正在寻找一个使用表索引来获得其偏移量的解决方案

回答

2

您不能在DOM元素上使用jQuery方法。

A jQuery object包含DOM元素,并且您试图在jQuery对象中的某个DOM元素上使用jQuery方法.offset()

使用.eq() method,以便通过它的索引,而不是访问jQuery对象:基于零

$("table").eq(1).offset().top; 

(作为一个侧面说明,.eq()方法的指数是,所以.eq(1)是第二元件。 )


另外值得一提的是,你可以为了使用它作为一个jQuery objec与$()包裹的DOM元素$("table")[1] t:

$($("table")[1]).offset().top 
1

您可以改为使用.eq()

console.log("the first table offset is " +$("table").eq(1).offset().top) 
2

为偏移()的jquery文档:

获取该组匹配 元件,相对于所述文档的第一元件的当前坐标。

说,这一切

2

您可以遍历表和存储他们的阵列中的偏移量。当您以$(“table”)[1]的形式访问表格时,它将成为一个javascript对象。为了得到补偿这个元素,你可以使用任何如下:

$("table").eq(1).offset().top 

or 

$($("table")[1]).offset().top 

这是因为.offset()是一个jQuery功能,而不是一个javascript funtion。

相关问题