• DOM常用操作总结


    一、getElementById()

      寻找一个有着给定 id 属性值的元素,返回值是一个有着给定 id 属性值的元素节点。如果不存在,这样的元素,它返回 null.

    二、getElementsByName()

      寻找有着给定name属性的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理。这个集合的 length 属性等于当前文档里有着给定name属性的所有元素的总个数。

    三、getElementsByTagName()

      寻找有着给定标签名的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理这个集合的 length 属性等于当前文档里有着给定标签名的所有元素的总个数。

    四、hasChildNodes() 

      该方法用来检查一个元素是否有子节点,返回值是 true 或 false

      文本节点和属性节点不可能再包含任何子节点,所以对这两类节点使用 hasChildNodes 方法的返回永远是 false.

      如果 hasChildNodes 方法的返回值是 false,则 childNodes,firstChild,lastChild 将是空数组和空字符串。

    五、nodeName和nodeType

      文档里的每个节点都有以下属性。
      nodeName:返回一个字符串,其内容是给定节点的名字 
      var name = node.nodeName;
     

       * 如果节点是元素节点,nodeName返回这个元素的名称

       * 如果是属性节点,nodeName返回这个属性的名称

       * 如果是文本节点,nodeName返回一个内容为#text 的字符串

      注:nodeName 是一个只读属性。

    nodeType:返回一个整数,这个数值代表着给定节点的类型。
    •nodeType 属性返回的整数值对应着 12 种节点类型,常用的有三种:
    •Node.ELEMENT_NODE    ---1    -- 元素节点
    •Node.ATTRIBUTE_NODE  ---2    -- 属性节点
    •Node.TEXT_NODE       ---3    -- 文本节点
    •nodeType 是个只读属性
    nodeValue:返回给定节点的当前值(字符串)
    •如果给定节点是一个属性节点,返回值是这个属性的值。
    • 如果给定节点是一个文本节点,返回值是这个文本节点的内容。
    •如果给定节点是一个元素节点,返回值是 null
    • nodeValue 是一个 读/写 属性,但不能对元素节点的 nodeValue 属性设置值,
     但可以为文本节点的 nodeValue 属性设置一个值
     var li = document.getElementByIdx_x_x_x(“li”);
     if(li.firstChild.nodeType == 3)
     li.firstChild.nodeValue = “myLi”;
    六、replaceChild()
      把一个给定父元素里的一个子节点替换为另外一个子节点
        var reference = element.replaceChild(newChild,oldChild);
      返回值是一个指向已被替换的那个子节点的引用指针。
      如果被插入的子节点还有子节点,则那些子节点也被插入到目标节点中
     
    七、查询属性节点和属性节点的值、删除和添加属性
      getAttribute()  
      返回一个给定元素的一个给定属性节点的值
      var attributeValue = element.getAttribute(attributeName);
      给定属性的名字必须以字符串的形式传递给该方法。
      给定属性的值将以字符串的形式返回,如果给定属性不存在,getAttribute() 将返回一个空字符串.
      getAttributeNode()
      通过属性获取属性节点
      setAttribute()
      将给定元素节点添加一个新的属性值或改变它的现有属性的值
       element.setAttribute(attributeName,attributeValue);
       •属性的名字和值必须以字符串的形式传递给此方法
       •如果这个属性已经存在,它的值将被刷新;
       •如果不存在,setAttribute()方法将先创建它再为其赋值。
    removeAttribute()
       •删除指定名字的属性
     
    八、创建新元素节点,创建文本节点
    createElement_x_x()
    •按照给定的标签名创建一个新的元素节点。方法只有一个参数:将被创建的元素的名字,是一个字符串.
    var reference = document_createElement_x_x(element);
    •方法的返回值:是一个指向新建节点的引用指针。返回值是一个元素节点,所以它的
    nodeType 属性值等于 1。
    •新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性,它只是一个存在于JavaScript 上下文的对象.
         var pElement = document_createElement_x_x("p");
    createTextNode()
       •创建一个包含着给定文本的新文本节点。这个方法的返回值是一个指向新建文本节点引用指针。
       var textNode = document_createTextNode(text);
       •方法只有一个参数:新建文本节点所包含的文本字符串
       •方法的返回值:是一个指向新建节点的引用指针。它是一个文本节点,所以它的 nodeType 属性
       等于 3.
      •新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性
     
    九、innerHTML 属性
      浏览器几乎都支持该属性,但不是 DOM 标准的组成部分。
      innerHTML 属性可以用来读,写某给定元素里的 HTML 内容。
     
    十、插入节点
    la()
      •为给定元素增加一个子节点: 
            var newreference = element.a(newChild).             
        给定子节点 newChild 将成为给定元素节点 element 的最后一个子节点。
       •方法的返回值是一个指向新增子节点的引用指针。
       •该方法通常与 createElement_x_x() createTextNode() 配合使用
       •新节点可以被追加给文档中的任何一个元素
    insertBefore()
       •把一个给定节点插入到一个给定元素节点的给定子节点的前面
       var reference =  element.insertBefore(newNode,targetNode);
        节点 newNode 将被插入到元素节点 element 中并出现在节点 targetNode 的前面.
       •节点 targetNode 必须是 element 元素的一个子节点。
       •该方法通常与 createElement_x_x() 和 createTextNode() 配合使用
    注意:
    DOM 没有提供 insertAfter() 方法但可以自己定义如下:
    selectElement.insertBefore(
    •newOptionElement,
    •optionElement.nextSibling);
     
    childNodes:返回一个数组,这个数组由给定元素节点的子节点构成:

      var nodeList = node.childNodes;

    •文本节点和属性节点都不可能再包含任何子节点,所以它们的 childNodes 属性永远会返回一个空数组。
    •如果想知道某个元素有没有子节点,可以用 hasChildNodes 方法。
    •如果想知道某个元素有多少个子节点,可以用 childNodes 数组的 length 属性。
    •childNodes 属性是一个只读属性。
     
      removeChild()
    •从一个给定元素里删除一个子节点

       var reference = element.removeChild(node);

    •返回值是一个指向已被删除的子节点的引用指针。
    •某个节点被removeChild()方法删除时,这个节点所包含的所有子节点将同时被删除。
    •如果想删除某个节点,但不知道它的父节点是哪一个,parentNode 属性可以帮忙。
    firstChild:该属性返回一个给定元素节点的第一个子节点,返回这个节点对象的指针。

    var reference = node.firstChild;

    •文本节点和属性节点都不可能包含任何子节点,所以它们的 firstChild 属性永远会返

    回 null。

    •某个元素的 firstChild 属性等价于这个元素的 childNodes 节点集合中的第一个节点,即:

     var reference = node.ChildNodes[0];

    •firstChild 属性是一个只读属性。
      lastChild:对应 firstChild 的一个属性。
      nextSibling: 返回一个给定节点的下一个兄弟节点。
      parentNode:返回一个给定节点的父节点。
    •parentNode 属性返回的节点永远是一个元素节点,因为只有元素节点才有可能包含子节点。
    •document 节点没有父节点。
      previousSibling:返回一个给定节点的上一个兄弟节点
  • 相关阅读:
    函数
    拉取代码到本地
    逻辑位运算符 以及 布尔运算符&&、||
    JS中substr与substring的区别
    ? :和!:的用法含义及es6语法...
    JS中attribute和property的区别
    并发、并行的理解
    斑鸠云商小程序记住账号和密码
    js中的foreach用法
    指针与数组
  • 原文地址:https://www.cnblogs.com/RuMengkai/p/6216935.html
Copyright © 2020-2023  润新知