zoukankan      html  css  js  c++  java
  • js学习总结----DOM中的节点和关系属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="div1">
            <h1>培训课程</h1>
            <ul>
                <li>html+css</li>
                <li>javascript</li>
                <li>正式课</li>
                <li>移动端课程</li>
                <li>node.js正式课</li>
            </ul>
        </div>
        <script>
            //获取关系的属性
            var oDiv = document.getElementById("div1");
            console.log(oDiv.childNodes);//获取所有的子节点
            console.log(oDiv.children);//获取所有的元素子节点
        </script>
    </body>
    </html>

    节点:Node 一个页面中的标签、文字、注释。。。都是节点

    childNodes:获取所有的子节点

    children:获取所有的元素子节点

    parentNode:获取父亲节点

    previousSibling:获取上一个哥哥节点

    nextSibling:获取下一个弟弟节点

    firstChild:获取所有的子节点中的第一个

    lastChild:获取所有子节点中的最后一个

    在js中需要我们掌握的节点类型:

                  nodeType             nodeName                     nodeValue

      元素节点(元素标签)                  1                      大写的标签名                    null

      文本节点(文字)      3       #text         文字内容

      注释节点(注释)      8      #comment       注释内容

      document         9      #document       null

      注意:在标准浏览器下,我们把space空格和Enter回车都当作我们的文本节点

      方法:模拟我们的children方法,实现获取指定元素下的元素子节点  

           /        * getMyChildren:获取制定元素下的所有的元素节点        * @parameter: 
      * ele:我们要获取谁下面的,就把谁传过来
           tagName:获取元素的类型 * @return: * 我们最后获取的元素子节点 * by xxxxxxxxx *
    */ function getMyChildren(ele,tagName){ var ary = [],nodes = ele.childNodes; for(var i = 0;i<nodes.length;i++){ var cur = nodes[i]; if(cur.nodeType===1){
                if(tagName){
                  if(cur.nodeName.toLowerCase===tagName.toLowerCase){
                    ary.push(cur)
                  }
     
                }else{
                 ary.push(cur);
                }
                       
                    }
                }
                return ary;
    
            }

    获取一个元素的上一个哥哥元素子节点 

        function prev(ele){var pre = ele.previousSibling;
            while(pre && pre.nodeType!==1){
                pre = pre.previousSibling;
            }
          return pre;
        }

    获取一个元素的所有的哥哥元素节点

     function prevAll(ele){
                var pre = ele.previousSibling,ary = [];
                while(pre){
                    if(pre,nodeType===1){
                        ary.unshift(pre);
                    }
                    pre = pre.previousSibling;
                }
                return ary;
            }
  • 相关阅读:
    学习笔记Jmail收发邮件
    ModalPopup
    学习笔记:UpdatePanel控件
    转AjaxControlToolkit的安装与使用详解
    转linq中的Single()、First()、Take(1) LINQ 标准的查询操作符 排序 orderby、thenby、Take
    转Global.asax文件
    转<%%>、<%=%>、<%$%>、<%@%>的区别
    C++文件包含处理—#include
    GISer学习之道(转载)
    OSG中的示例程序简介
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7056768.html
Copyright © 2011-2022 走看看