2013-01-08 34 views
0

我创建一个简单的Java脚本供电拼图的adjecent DIV ID。到目前为止,我所做的是创建一个div作为父母的工作类型,在该div内部,我创建了9个div元素来表示图片的每个部分(这是一个3x3的难题)。这是我用于图片元素div的CSS样式。获取使用javascript

.part{ 
background-image: url(../images/image.jpg); 
background-position: top left; 
background-repeat: no-repeat; 
box-shadow: 1px 1px 10px; 
} 

#part{ 
width: 200px; 
height: 200px; 
float: left; 
border: 1px dotted #fff; 
} 

我的概念是什么,如果用户点击一个div元素,脚本应该检查相邻的div元素。如果元素没有分配背景图像,它应该得到单击元素的值。

我的问题是,如何从DIV获得相邻的div元素ID用户点击!

+0

如果你得到包含在网格中的位置标识,该办法知道当前坐标,您可以很容易找到相邻的div,例如使用像'tile_X_Y'这样的ID ... – yent

+0

在3x3的拼图中,您需要9个div吗? – Amberlamps

+0

我实际上使用了8个div,并认为使用9个div很容易! :) –

回答

1

您可以通过使用DOM对象

0

nextSibling财产,我建议Ankur's答案,但我要告诉你,你必须非常小心nextSibling访问相邻格。看看下面的标记:

<div id="Div1">Text1</div> 
<div id="Div2">Text2</div> 

在Chrome document.getElementById("Div1").nextSibling将返回的div id为Div2。但在IE中,同一行返回一个#Text节点,指向两个div标记之间的空格。

为了确保您将获得下一div尝试以下。

var div = document.getElementById("Div1"); 
do { 
    div = div.nextSibling; 
} while (div !== null && div.tagName !== "DIV"); 

编辑:我成立了一个的jsfiddle演示什么,我会以为你是在寻找:http://jsfiddle.net/9q6vz/

+0

中的jsFiddle,让我们来说一下。我拥有的是div元素的地图。我正在尝试使用单击的元素来获取下一个元素ID ..我怎样才能找出顶部,左侧,底部和右侧的元素。我现在很困惑! :( –

+0

所以你真的想通过点击一个div获得多达4周不同的div(假设您点击DIV在中间)? – Amberlamps

+0

我用nextSibling获得下一个div的ID在一个角落里格。 。但谷歌Chrome的报道说,这是不确定的。。 –