使用 jQuery 在特定位置查找元素?

IT技术 javascript jquery
2021-01-26 20:49:05

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

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

如果我可以选择位于一系列位置的元素,那就太好了,例如,选择位于左侧的元素:100 - 150 px top 200 - 280px。

2个回答

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

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

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

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

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

参考:.elementFromPoint()

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

哇!从来不知道。太棒了!!每天学些新东西。
2021-03-13 20:49:05
在 IE 中使用代码: var elem = document.elementFromPoint(100, 100) alert(elem); 它提醒对象,但没有提醒(elem.id);它会在 FF 和 chrome 中提醒 ID
2021-03-15 20:49:05
奇迹般有效!谢谢jAndy!
2021-03-26 20:49:05
@Thomas:这很有可能。
2021-03-29 20:49:05
显然,是使用绝对文档坐标(Safari 和 Opera)还是相对窗口坐标(IE 和 Firefox)是不兼容的。zehnet.de document.elementFromPoint上的解释和 jQuery 解决方案– 一个 jQuery 解决方案
2021-04-03 20:49:05

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

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

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

在某些应用程序中添加:visible到选择器中.find("*")可能会有所帮助
2021-04-03 20:49:05