jQuery或JavaScript获取靠近其他元素的元素

jQuery or JavaScript get element near other element

本文关键字:元素 其他 靠近 获取 JavaScript jQuery      更新时间:2024-06-26

如何(使用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:relativeabsoluteleft:(number)px

我需要一个能够在动态环境中工作的代码;你知道,当区块不断被创建,不断向前滚动并改变左侧位置时。我可以用.position()吗?以某种方式

谢谢。:)

这是一个有趣的思维实验。。。

为了解决这个问题,您可能需要计算每个元素的offset,并将这些坐标(topleft)与其他元素进行比较。

假设你想找到最接近compareEl的元素,并且你有compareElTopcompareElTop,循环浏览屏幕上的所有元素(除了compareEl),然后做这样的事情:

var topDiff = Math.abs(compareElTop-elements[x].offset().top);
    leftDiff = Math.abs(compareElLeft-elements[x].offet.left);

与最低topDiff+leftDiff的配对最接近。

这里有一个很好的jsFiddle供你玩!一切都很棒。

例如,如果您想获得与#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();
});

这是的演示