【问题标题】:Using jQuery to find an element at a particular position?使用 jQuery 在特定位置查找元素?
【发布时间】:2010-10-15 13:43:49
【问题描述】:

jQuery 中是否有方法可以选择位于特定位置的元素?

例如,我可以选择绝对位置位于 left:100 和 top:300 的元素吗?

如果我可以选择位于某个位置范围内的元素,那就太好了,例如,选择位于左侧的元素:100 - 150 px top 200 - 280px。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您正在寻找.elementFromPoint() JavaScript/DOM 方法。

var elem = document.elementFromPoint(100, 100) // x, y

这会返回一个DOM node,然后当然可以将其包装到一个 jQuery 对象中:

$(elem).remove(); // for instance

我不太了解跨浏览器兼容性,我希望一些更了解的人编辑这篇文章或写评论。

参考:.elementFromPoint()

示例链接:http://www.jsfiddle.net/YjC6y/22/

【讨论】:

  • 哇!从来不知道。好极了!!每天学习新东西。
  • @Thomas:这很有可能。
  • 在 IE 中使用代码:var elem = document.elementFromPoint(100, 100) alert(elem);它警告对象,但没有警报(elem.id);它会在 FF 和 chrome 中提醒 id
  • 显然是使用绝对文档坐标(Safari & Opera)还是相对窗口坐标(IE & Firefox)不兼容。 zehnet.de上的解释&jQuery解决方案document.elementFromPoint – a jQuery solution
  • 像魅力一样工作!谢谢你 jAndy!
【解决方案2】:

如果您知道相对于文档的确切坐标:

function getElsAt(top, left){
    return $("body")
               .find("*")
               .filter(function() {
                           return $(this).offset().top == top 
                                    && $(this).offset().left == left;
               });
}

另一个答案在第一个叠加层处停止。

【讨论】:

  • :visible 添加到.find("*") 中的选择器可能对某些应用程序有帮助
猜你喜欢
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
  • 2011-06-11
  • 2016-06-17
  • 2011-03-12
  • 1970-01-01
相关资源
最近更新 更多