我需要在我调用的div之前得到div的属性。
例如:
此处我关注 divBAMT
,我需要获取pMu$i32
的属性。我怎么能得到相同的。基本的想法是,我需要在div divBAMT
下立即添加pMu$i32
,我已经这样做但我需要相应地定位divBAMT
。
所以我将得到上面div的属性,例如top和height,并相应地决定我的div的位置。
还有其他更好的方法吗?
答案 0 :(得分:1)
尝试elementNode.previousSibling
,例如:
var prev = document.getElementById("pMu$divBAMT").previousSibling;
console.log(prev.id); // pMu$i32
答案 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