Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 识别指定位置的所有元件_Jquery_Css_Html - Fatal编程技术网

Jquery 识别指定位置的所有元件

Jquery 识别指定位置的所有元件,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

jQuery中是否有任何方法可以选择位于特定位置的所有元素,例如选择位于左侧:100和顶部:300的元素,以及位于相同位置的另一个div,单击“我想获取两个div的ID”

如果我能选择和定位在一系列位置的元素,那就太好了

这把小提琴,但它的显示ID仅为顶级div

$(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,您必须恰好单击元素的左上角。