我在一个页面中有两个表。我使用jQuery' s $.offset().top
打印他们的顶级坐标。
$("table").offset().top
打印第一个表偏移量。不是$("table")
选择所有表格吗?它如何只打印第一张表格的坐标?
当我尝试使用$("table")[1]
打印第二张表的偏移位置时,它表示$("table")[1].offset
为undefined
Jsfiddle链接在, http://jsfiddle.net/JfGVE/805/
注意:我可以使用表格ID获取结果,但我正在寻找一种使用表格索引获取其偏移量的解决方案
答案 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)