javascript – previousSibling无效

前端之家收集整理的这篇文章主要介绍了javascript – previousSibling无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想定位第一个< p>在div中选择第二个< p>并使用prevIoUsSibling属性,但它不起作用.
<div id="par">
<p id="p1">test</p>
<p id="p2">test</p>
</div>


document.getElementById('p2').prevIoUsSibling.className = 'red';

编辑:

好吧它适用于除IE8之外的所有浏览器,但我希望它也可以在IE8中工作,我尝试了以下条件,但没有效果

var c = document.getElementById('p2').prevIoUsElementSibling.className = 'red';

if (c == undefined) {

    c = document.getElementById('p2').prevIoUsSibling.className = 'red';
}

它仍然适用于IE8.如何更改IE8的上述条件?

编辑2:

管理以使其在IE8中工作:

var c = document.getElementById('p2');

if (c.prevIoUsElementSibling) {

    c.prevIoUsElementSibling.className = 'red';

} else {

    c.prevIoUsSibling.className = 'red';

}

解决方法

您需要使用 previousElementSibling获取前一个Element节点.
document.getElementById('p2').prevIoUsElementSibling.className = 'red';

http://jsfiddle.net/b6Bh8/

注意:根据上面的MDN链接,这不适用于IE< = 8.您可能需要循环遍历prevIoUsSibling,直到找到Element节点.

猜你在找的JavaScript相关文章