首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用存储在数组中的id获取元素偏移量

使用存储在数组中的id获取元素偏移量
EN

Stack Overflow用户
提问于 2018-09-19 16:43:42
回答 1查看 153关注 0票数 0

我试图使用元素的id来获取元素的偏移量,我将其存储在数组中。守则:

代码语言:javascript
复制
        var id_array = new Array;
        var offset_array = new Array;
        var i = 0;
        for(i = 0; i < $(".page-grid-picture").length; i++)
        {                
            id_array.push($(".page-grid-picture")[i].getAttribute("id"));
            offset_array.push(id_array[i].offset().top);
        }

我使用了警告来查看是否将正确的值存储在id_array中,它就是这样的。问题是,在尝试获取偏移值时,我似乎无法通过使用其索引来调用该值。如果我使用这样一个唯一的id,它就会工作:

代码语言:javascript
复制
        offset_array.push($("#unique-id").offset().top);

但当我尝试使用id_array时.我也试过:

代码语言:javascript
复制
        offset_array.push(document.getElementById(id_array[i]).offset().top);

那也没用..。

有谁能给我一个解决办法吗?

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-19 17:04:07

您需要对一个offset()对象调用jQuery。它不是字符串或原始DOM元素上的方法。

代码语言:javascript
复制
var id_array = [];
var offset_array = [];
var $pageGridPictures = $(".page-grid-picture");

$pageGridPictures.each(function(index, element){
  var $this = $(element);
  
  id_array.push(element.id);
  offset_array.push($this.offset().top);
});

最初您所做的工作如下:

代码语言:javascript
复制
id_array.push($(".page-grid-picture")[i].getAttribute("id"));

这样做的目的是将所有页面网格图片元素作为jQuery对象。然后,它获取[i]元素,该元素将单个DOM元素从jQuery对象中分离出来,然后从其中获取id属性。因此,在这种情况下,推送到id_array的值是一个字符串,而不是jQuery对象。因此,如果您要这样做,您以后必须获取id,再次查找元素,然后对其执行偏移()操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52410623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档