使用jQuery

时间:2015-12-02 04:01:02

标签: javascript jquery css

我在一个页面中有两个表。我使用jQuery' s $.offset().top打印他们的顶级坐标。

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

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

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

Jsfiddle链接在, http://jsfiddle.net/JfGVE/805/

注意:我可以使用表格ID获取结果,但我正在寻找一种使用表格索引获取其偏移量的解决方案

4 个答案:

答案 0 :(得分:2)

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

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

使用.eq() method以便通过索引访问jQuery对象:

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

(作为旁注,.eq()方法的索引从零开始,因此.eq(1)是第二个元素。)

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

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

答案 1 :(得分:2)

offset()的jquery文档:

  

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

全部说明

答案 2 :(得分:2)

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

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

or 

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

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

答案 3 :(得分:1)

您可以改为使用.eq()

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