说你有这个:
<div id="1"></div><div id="2"></div><div id="3"></div>
你能用javascript / jquery来找到id =“1”右边的id =“2”吗?
答案 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();
现在,您可以比较left
和top
对象的o1
和o2
属性。
如果你“向右”意味着他们彼此相邻,而第二个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;
}