首页 > 代码库 > 【JS学习笔记】DOM基础-首尾子节点,兄弟节点

【JS学习笔记】DOM基础-首尾子节点,兄弟节点

一、DOM节点

(1)首尾子节点

有兼容性问题

firstChild、firstElementChild

firstChild在高版本的浏览器上具有兼容问题,firstChild在高版本浏览器中指的是文本元素。

firstElementChild高级浏览器下可以使用,在IE6-8下反而不兼容。

解决兼容性的办法是使用if进行判断

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload = function ()
{
    var oUl=document.getElementById(‘ul1‘);
    //这个东西只能在IE6-8版本下才能用
    //oUl.firstChild.style.background=‘red‘;/*firstChild在高版本的浏览器上具有兼容问题,firstChild在高版本浏览器中指的是文本元素。*/
    
    //高级浏览器下可以使用,在IE6-8下反而不兼容
    //oUl.firstElementChild.style.background=‘red‘;
    //处理兼容问题,一般用if
    /*首先判断firstElementChild是否存在*/
    if(oUl.firstElementChild)
    {
        oUl.firstElementChild.style.background=‘red‘;
        }
    else
    {
        oUl.firstChild.style.background=‘red‘;
        }
    };
</script>

</head>

<body>
<ul id="ul1">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
</body>
</html>

当然,像lastCHild、lastElementChild,以及下面的兄弟节点,也是一个德行。

(2)兄弟节点

有兼容性问题

nextSibling、nextElementSibling

previousSibling、previousElementSibling

同首位子节点来解决兼容性问题。

 

【JS学习笔记】DOM基础-首尾子节点,兄弟节点