jQuery中是否有一种方法可以选择位于特定位置的元素?
例如,我可以选择位于left:100和top:300绝对位置上的元素吗?
如果我可以选择位于一定范围内的元素就更好了,例如选择位于left: 100 - 150像素,top: 200 - 280像素的元素。
jQuery中是否有一种方法可以选择位于特定位置的元素?
例如,我可以选择位于left:100和top:300绝对位置上的元素吗?
如果我可以选择位于一定范围内的元素就更好了,例如选择位于left: 100 - 150像素,top: 200 - 280像素的元素。
您正在寻找 JavaScript/DOM 方法 .elementFromPoint()
。
var elem = document.elementFromPoint(100, 100) // x, y
这会返回一个 DOM 节点
,然后可以将其包装成 jQuery 对象:
$(elem).remove(); // for instance
我对跨浏览器兼容性并不是很了解,希望一些更懂的人能够编辑这篇文章或者在下面留言。
参考文献:.elementFromPoint()
只要你知道相对于文档的确切坐标:
function getElsAt(top, left){
return $("body")
.find("*")
.filter(function() {
return $(this).offset().top == top
&& $(this).offset().left == left;
});
}
另一个答案止步于第一个重叠层。
.find("*")
选择器中添加 :visible
可能会有帮助。 - Mike