zoukankan      html  css  js  c++  java
  • 基本DOM操作

    一、节点类型

    最常见节点类型有三类:

    元素节点 Node.ELEMENT_NODE nodeType=1

    属性节点 Node.ATTRIBUTE_NODE nodeType=2

    文本节点 Node.TEXT_NODE nodeType=3

    二、获取元素节点

    document.getElementById(id);

    nodeObject.getElementsByTagName(name);

    三、操作属性节点

    elementNode.getAttribute(name)

    elementNode.setAttribute(name,value)

    elementNode.removeAttribute(name)

    四、创建元素节点

    document.createElement(name)

    五、添加节点

    parentNodeObject.appendChild(nodeObject) 向节点的子节点列表的结尾添加新的子节点

    parentNodeObject.insertBefore(newchild,refchild) 在已有的子节点前插入一个新的子节点

    五、节点遍历(下列属性除parentNode,都可能会指向非元素节点)

    nodeObject.childNodes 返回指定节点的子节点的节点列表(不含子节点的子节点)

    nodeObject.parentNode 返回某节点的父节点

    nodeObject.firstChild 返回指定节点的首个子节点

    nodeObject.nextSibling 返回某个元素之后紧跟的元素(处于同一树层级中)

    nodeObject.previousSibling 返回某节点之前紧跟的节点(处于同一树层级)

    DEMO

    window.onload = function(){
        
        var container = document.getElementById('container');
        var ul = document.createElement('ul');  //创建一个ul节点
        ul.setAttribute('id', 'cul');  //设置节点属性
        ul.className = 'addul';  //与setSttribute方法作用相同
        ul.innerHTML = '<li>one</li><li>two</li><li>three</li><li>four</li>';  //为ul添加子节点
        ulc = ul.childNodes;  //获取ul子节点列表
        var li = ulc[0];  //获取第一个子节点,在此同 var li = ul.firstChild;注意判断节点类型
        while(li != null){
            li.title = li.innerHTML;
            li = li.nextSibling;  //将li指向其下一个兄弟节点
        }
        var insertLi = document.createElement('li');  //创建一个li节点
        insertLi.innerHTML = 'insertLi';  
        ul.insertBefore(insertLi, ulc[2]);  //在ul的第三个子节点前插入新建的li节点
        container.appendChild(ul);  //将节点ul添加到dom树中
        var ulcl = ul.getElementsByTagName('li');  //获取ul下tagName为li的节点
        for(var i = 0; i < ulcl.length; i++){
            console.log('ulcl[' + i + ']: ' + ulcl[i].innerHTML);
        }
    
    }
    

      

      

    相关链接:

    http://www.w3school.com.cn/xmldom/dom_document.asp

    http://www.w3school.com.cn/xmldom/dom_node.asp

  • 相关阅读:
    LVGL初步移植
    为什么javac后加.java,java后不加.class?
    为什么内部类可以访问外部类的私有属性?
    Optional类与使用==判断null有什么区别?使用Optional类有什么优势?
    注释中的Unicode编码也会被转义
    用反射编写泛型数组
    JDBC与JPA--初学JPA
    抽象类与接口
    面向对象——多态
    面向对象——封装(隐藏)
  • 原文地址:https://www.cnblogs.com/realwall/p/2346173.html
Copyright © 2011-2022 走看看