JavaScript基础知识点--DOM操作之节点

2019-12-30  本文已影响0人  梦幽辰

DOM之节点

添加节点

create 系列方法

document.createElement 还能支持创建当前浏览器不支持的标签名,在IE6-8下,这是一个著名的 hack

创建节点示例一

    var newDiv = document.createElement("div"); // 创建元素节点,这句话就是在窗口创建div元素
    var newContent = document.createTextNode("Hi there and greetings!"); // 创建文本节点及其内容
    newDiv.appendChild(newContent); // 将文本节点装填到元素节点内

创建节点示例二

var comment = document.createComment("A comment");
    var fragment = document.createDocumentFragment();
    var ul = document.getElementById("myList");// HTML 文档中ul的id为myList
    var li = null;
    for(var i = 0; i < 3; i++){
        li = document.createElement("li");
        li.appendChild(document.createTextNode("Item "+ (i+1)));
        fragment.appendChild(li);
    }
    ul.appendChild(fragment);
    // insertBefore 有两个参数,一个是要插入的节点,另一个是插入节点相对的对象,插入节点要插入到哪个对象的前面的对象,这里的第二个参数是ul
    document.body.insertBefore(comment, document.body.firstChild);

IE 浏览器条件编译

    // 如果是IE浏览器,则!!0为假,不return。如果不是IE浏览器,则!0为真,返回并且不执行条件编译后面的代码
    if(!
    /*@cc_on!@/
    0) return;

高效创建节点的方法

使用 innerHTML 的限制

避开空白节点

  1. nodeType

  2. 第二套 API

类数组对象

NodeList 对象的特点

NodeList 是 childNodes 的保存的对象

类数组对象 HTMLCollection

namedItem()

该方法返回 HTMLCollection 对象中指定 ID 或 name 的元素

语法

HTMLCollection.namedItem(name)

参数说明

name:必需。你要返回元素的 id 或 name 属性的值

类数组对象 NamedNodeMap

主要用于获取属性的属性值

类数组对象的动态性

节点查找方法

前三个只能是 document 对象的方法

querySelectorAll() 和 querySelector() 方法返回的是一个静态的 NodeList ,所谓静态 NodeList 就是对底层 document 的更改不会影响到返回的这个 NodeList 对象.此时返回的 NodeList 只是 querySelectorAll() 方法被调用时的文档状态的快照。

操作节点

参数说明

方法 参数
appendChild() appendChild(要插入的节点)
insertBefore() insertBefore(要插入的节点,指定的子节点)
replaceChild() replaceChild(要插入的节点,被替换的节点)
cloneNode() cloneNode(boolean),若Boolean为false,则只复制该节点。如果未true,则为深度拷贝,将该节点下的子节点一起拷贝
splitText() splitText(num),节点从num位置被分割,包括num该位置的字符

nodeValue 与 innerHTML 的区别

nodeValue

nodeValue 属性设置或返回指定节点的节点值。(文本节点和属性节点可以用nodeValue)

innerHTML

innerText属性可以获取或者设置指定元素的文本内容

区别

nodeValue 只会读取 element 这个节点的节点值,不包括子节点,而 innerHTML 包括子节点

删除节点

涉及方法

参数说明

方法 参数说明
removeChild() 一个参数。为要删除的子节点
removeNode() 一个参数为布尔值,默认值为false。若为false,仅删除目标节点,保留子节点。若为true,功能和removeChild类似
上一篇下一篇

猜你喜欢

热点阅读