使用jQuery的索引获取表的偏移位置

Get the offset position of a table using its index with jQuery

本文关键字:位置 获取 jQuery 索引 使用      更新时间:2023-09-26

我在一页中有两个表。我使用jQuery的$.offset().top打印它们的顶部坐标。

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

打印第一个表偏移。$("table")不是选择了所有的表吗?它是如何只打印第一张表的坐标的?

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

Jsfddle链接位于,http://jsfiddle.net/JfGVE/805/

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

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

jQuery对象包含DOM元素,您正试图在jQuery对象中的一个DOM元素上使用jQuery方法.offset()

使用.eq()方法通过jQuery对象的索引来访问它:

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

(附带说明,.eq()方法的索引是基于零的,因此.eq(1)是第二个元素。)


还值得一提的是,您可以用$()包装DOM元素$("table")[1],以便将其用作jQuery对象:

$($("table")[1]).offset().top
jquery docs for offset():

获取匹配集合中第一个元素的当前坐标元素,相对于文档。

表示全部

您可以迭代表并将其偏移量存储在数组中。当您以$("table")[1]的形式访问该表时,它将成为一个javascript对象。为了获得该元素的偏移量,您可以使用以下任何一种:

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

这是因为.offset()是一个jquery函数,而不是javascript函数。

您可以改用.eq()

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