Jquery 识别指定位置的所有元件
jQuery中是否有任何方法可以选择位于特定位置的所有元素,例如选择位于左侧:100和顶部:300的元素,以及位于相同位置的另一个div,单击“我想获取两个div的ID” 如果我能选择和定位在一系列位置的元素,那就太好了 这把小提琴,但它的显示ID仅为顶级divJquery 识别指定位置的所有元件,jquery,css,html,Jquery,Css,Html,jQuery中是否有任何方法可以选择位于特定位置的所有元素,例如选择位于左侧:100和顶部:300的元素,以及位于相同位置的另一个div,单击“我想获取两个div的ID” 如果我能选择和定位在一系列位置的元素,那就太好了 这把小提琴,但它的显示ID仅为顶级div $(document).ready(function(){ $(document.body).bind('click', function(e){ var elem = document.ele
$(document).ready(function(){
$(document.body).bind('click', function(e){
var elem = document.elementFromPoint(e.pageX, e.pageY);
alert('you selected element id: ' + elem.id);
});
});
像这样的-
$('*').filter(function () {
if ($(this).position().left === 100 && $(this).position().top === 300)
return true;
else
return false;
}).each(function () {
console.log($(this).attr('id'));
});
演示-->
试试我的小提琴
它使用了可能的dup中的代码,正如您在原始帖子中所评论的:
$(document).ready(function(){
$(document.body).bind('click', function(e){
var elems = GetAllElementsAt(e.pageX, e.pageY);
elems.each(function() {
alert($(this).attr('id'));
});
});
});
function GetAllElementsAt(x, y) {
var $elements = $("body *").map(function() {
var $this = $(this);
var offset = $this.offset();
var l = offset.left;
var t = offset.top;
var h = $this.height();
var w = $this.width();
var maxx = l + w;
var maxy = t + h;
return (y <= maxy && y >= t) && (x <= maxx && x >= l) ? $this : null;
});
return $elements;
}
$(文档).ready(函数(){
$(document.body).bind('click',函数(e){
var elems=GetAllegementSat(e.pageX,e.pageY);
每个元素(函数(){
警报($(this.attr('id'));
});
});
});
函数GetAllegementSat(x,y){
var$elements=$(“body*”).map(函数(){
var$this=$(this);
var offset=$this.offset();
var l=偏移量。左;
var t=offset.top;
var h=$this.height();
var w=$this.width();
var maxx=l+w;
var maxy=t+h;
返回(y=t)&(x=l)$this:null;
});
返回$elements;
}
Main credits@hunter此帖:如果我将指针移到“anam”div上,我想为“one”(div id)显示警报的可能重复项。。。您的代码正在计算所有div's,您必须恰好单击元素的左上角。