如何根据位置选择元素?
<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元素?
答案 0 :(得分:6)
这样的事可能有用:
var el = document.elementFromPoint(100, 100);
var $el = $(el); // if you really want to use jQuery.
这可能不是你想要的:它只会获得那个点上可见的最顶层元素,并且它将获得占据该空间的任何元素,而不仅仅是那个左上角位于该点的元素。但是,很有可能,它会有所帮助:)。
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的样式。