如何(使用jQuery或JavaScript ......)
<div style="background-color:red;height:10px;width:10px;float:left;"></div>
<div style="background-color:red;height:10px;width:10px;float:left;margin-left:25px;"></div>
<br>
<div style="background-color:red;height:10px;width:10px;margin-left:15px;" id="2">
我是否得到最接近id=2
的元素?我需要这种类型的选择器,任何帮助将不胜感激。 :)
请注意,我不介意为这些元素设置position:relative
或absolute
和left:(number)px
。
我需要一个可以在动态环境中工作的代码;你知道,当块不断创建并继续向前滚动并改变左侧位置时。我可以使用.position()
吗?不知?
谢谢。 :)
答案 0 :(得分:3)
这是一个有趣的思想实验......
要解决此问题,您可能需要计算每个元素的offset
,并将这些坐标(top
和left
)与其他元素进行比较。
假设您要查找距compareEl
最近的元素,并且您有compareElTop
和compareElTop
,请循环显示屏幕上的所有元素(compareEl
除外),并执行此操作像这样的东西:
var topDiff = Math.abs(compareElTop-elements[x].offset().top);
leftDiff = Math.abs(compareElLeft-elements[x].offet.left);
与最低topDiff+leftDiff
配对最近。
Here is a nice jsFiddle for you to play around with! All kinds of awesome.
答案 1 :(得分:1)
例如,如果您想获得与#2最接近的DOM元素:
<span>before</span>
<div style="background-color:red;height:10px;width:10px;margin-left:15px;" id="2"> </div>
<span>after</span>
使用Javascript:
$(function(){
var prevIt = $('#2').prev();
var nextIt = $('#2').next();
});
这是demo