Javascript-获取div的属性,紧接在相关div之前

时间:2014-05-02 11:47:50

标签: javascript css html

我需要在我调用的div之前得到div的属性。

例如: enter image description here

此处我关注 divBAMT ,我需要获取pMu$i32的属性。我怎么能得到相同的。基本的想法是,我需要在div divBAMT下立即添加pMu$i32,我已经这样做但我需要相应地定位divBAMT

所以我将得到上面div的属性,例如top和height,并相应地决定我的div的位置。

还有其他更好的方法吗?

2 个答案:

答案 0 :(得分:1)

尝试elementNode.previousSibling,例如:

 var prev = document.getElementById("pMu$divBAMT").previousSibling;
 console.log(prev.id); // pMu$i32 

工作示例:http://jsfiddle.net/RQdcN/

答案 1 :(得分:1)

如果您非常确定在两个div之间没有任何其他标记,则使用 element.previousSibling 是一个很好的解决方案。

Eg1。

<div id='par'>
   <div id='a'></div>
   <span id='sp'></span>
   <div id='b'></div>
 </div>

在'b'div上应用previousSibling将给出span标记而不是'a'div

document.getElementById('b').previousSibling; // -> span tag

从底部迭代直到你到达附近的div标签是一个更好的解决方案(如果你可能在div之间有不同的标签)

解决方案:

var prevDiv = document.getElementById('b');
do {
  prevDiv = prevDiv.previousSibling;
} while(prevDiv && !(prevDiv.nodeName.toLowerCase() == 'div' || prevDiv.tagName.toLowerCase() == 'div'));

console.log(prevDiv); // Now prevDiv is either null if no divs are found, else the nearest top div sibling 

更新了小提琴 JSFiddle