如何判断一个Div是否在另一个div的右侧或左侧? Jquery Javascript

时间:2011-04-26 16:30:56

标签: javascript jquery javascript-events jquery-selectors

说你有这个:

<div id="1"></div><div id="2"></div><div id="3"></div>

你能用javascript / jquery来找到id =“1”右边的id =“2”吗?

5 个答案:

答案 0 :(得分:3)

如果您正在寻找#2之前的div,请执行以下操作:

$("#2").prev("div")

答案 1 :(得分:0)

我不是专家,但不,我认为你不能。

首先,您是在谈论代码还是如何在屏幕上显示?列出的3个div实际上每个都显示在他们自己的行上。您需要使用跨度将它们全部保持在同一行。

答案 2 :(得分:0)

你可以得到他们的位置,如果div#i1的位置小于div#i2的位置(他们的x位置,如果你愿意的话)。 http://api.jquery.com/position/

#Requires jQuery
var d1x = $('div#i1').position().left,
    d2x = $('div#i2').position().left;

$('span').html((d1x < d2x) ? "yes" : "no");

我认为ID不能仅仅是数字。它可能有效,但这不是一个好习惯。

jsFiddle:http://jsfiddle.net/PKpdp/

答案 3 :(得分:0)

是。你如何检查这取决于你在“向右”的确切含义。

您可以使用offset方法获取两个元素的位置:

o1 = $('#1').offset();
o2 = $('#2').offset();

现在,您可以比较lefttop对象的o1o2属性。

如果你“向右”意味着他们彼此相邻,而第二个div在右边,你必须比较两个属性:

if (o1.top == o2.top && o1.left < o2.left) ...

如果你的意思是第二个div应该比第一个div更右边,那么你只需要比较left属性:

if (o1.left < o2.left) ...

请注意,id不应以数字开头。例如,使用id="x1"id="x2"是有效的。

答案 4 :(得分:0)

我会做类似的事情:

function is_div2_after_div1() {
  is_after = null;
  $("#parent > div").each(function(i, el) {
    if (is_after !== null) return;
    if (el.id && el.id == "div1") is_after = true;
    if (el.id && el.id == "div2") is_after = false;
  }
  return is_after;
}