如何根据位置选择元素?

时间:2011-06-18 05:37:35

标签: javascript jquery

如何根据位置选择元素?

<div id="parent">
    <p id="text">This is a text</p>
</div>

// CSS

#parent{width:100px;height:100px;position:absolute;left:100px;top:100px;}

现在使用left = 100px,top = 100px如何使用JQuery选择div元素?

3 个答案:

答案 0 :(得分:6)

这样的事可能有用:

var el = document.elementFromPoint(100, 100);
var $el = $(el); // if you really want to use jQuery.

document.elementFromPoint的文档。

这可能不是你想要的:它只会获得那个点上可见的最顶层元素,并且它将获得占据该空间的任何元素,而不仅仅是那个左上角位于该点的元素。但是,很有可能,它会有所帮助:)。

It is supported by all major browsers,虽然你可以通过Safari 4或Opera 10.10获得古怪的结果。

答案 1 :(得分:1)

您可以遍历每个元素以检查位置。这是一个快速示例函数:

function getElementsByPosition(x,y) {
  var elements=new Array();
  $('*').each(function() {
    if($(this).css('top')==x && $(this.css('left'))==y) {
      elements[elements.length]=this;
    }
  });
  return elements;
}

更新:Domenic的解决方案更加优雅。在使用我的之前请考虑他。

答案 2 :(得分:1)

jQuery css()函数允许您检索CSS属性的值,例如css('left')将返回元素的左侧位置。

但是,在您的问题中,您可以根据其位置选择 div元素。我认为你的意思是$('left=100px')。这是不可能的。 jQuery使用CSS选择器来查询结构,而不是DOM的样式。