DOM基础教程之使用DOM(3)

</script>
</head>
<body>
<div>
<ul>
    <span>
    <li>糖醋排骨</li>
    <li>圆笼粉蒸肉</li>
    <li>泡菜鱼</li>
    <li>板栗烧鸡</li>
    <li>麻婆豆腐</li>
         <li>麻婆豆腐</li>
         <li>麻婆豆腐</li>
    </span>
</ul>
    </div>
</body>

利用nextsibling和previousSibling属性访问兄弟节点看上去很好。

但仅仅适用于ie浏览器

为了使用代码有良好的兼容性,就必须使nodeType进行判断

以下做兼容性处理:

复制代码 代码如下:


<head>
<title>Siblings</title>
<script language="javascript">
function nextSib(node){
    var tempLast = node.parentNode.lastChild;
    //判断是否是最后一个节点,如果是则返回null
    if(node == tempLast)
        return null;
    var tempObj = node.nextSibling;
    //逐一搜索后面的兄弟节点,直到发现元素节点为止
    while(tempObj.nodeType!=1 && tempObj.nextSibling!=null)
        tempObj = tempObj.nextSibling;
    //三目运算符,如果是元素节点则返回节点本身,否则返回null
    return (tempObj.nodeType==1)?tempObj:null;
}
function prevSib(node){
    var tempFirst = node.parentNode.firstChild;
    //判断是否是第一个节点,如果是则返回null
    if(node == tempFirst)
        return null;
    var tempObj = node.previousSibling;
    //逐一搜索前面的兄弟节点,直到发现元素节点为止
    while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
        tempObj = tempObj.previousSibling;
    return (tempObj.nodeType==1)?tempObj:null;
}
function myDOMInspector(){
    var myItem = document.getElementById("myDearFood");
    //获取后一个元素兄弟节点
    var nextListItem = nextSib(myItem);
    //获取前一个元素兄弟节点
    var preListItem = prevSib(myItem);
    alert("后一项:" + ((nextListItem!=null)?nextListItem.firstChild.nodeValue:null) + " 前一项:" + ((preListItem!=null)?preListItem.firstChild.nodeValue:null) );
}
</script>
</head>
<body>
    <ul>
        <li>糖醋排骨</li>
        <li>圆笼粉蒸肉</li>
        <li>泡菜鱼</li>
        <li>板栗烧鸡</li>
        <li>麻婆豆腐</li>
    </ul>
</body>

7.设置节点属性

复制代码 代码如下:


<head>
    <title>childNodes</title>
    <script language="javascript">
       window.onload = function(){
           //获取图片
           var imgDataBe = document.getElementsByTagName("img")[0];
           //取得图片的title属性
           imgDataBe.setAttribute("src","02.gif");
           imgDataBe.setAttribute("title","人情坡");
           document.write(imgDataBe.getAttribute("title"));
           document.write(imgDataBe.getAttribute("alt"));
           document.write(imgDataBe.getAttribute("node-data"));
           document.write(imgDataBe.getAttribute("node_data"));
        }
    </script>
</head>
<body>
<div>
<img src="https://www.jb51.net/article/01.jpg" title="情人坡" alt="111" node-data="222" node_data="3333">
<img src="https://www.jb51.net/article/01.jpg" title="情人坡22">
</body>

用setAttribute()方法设置节点属性

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgxypd.html