我想定位第一个< 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';
注意:根据上面的MDN链接,这不适用于IE< = 8.您可能需要循环遍历prevIoUsSibling,直到找到Element节点.