js常见的创建dom节点的方法有

createElement() 创建一个元素节点 => 接收参数为string类型的nodename

createTextNode() 创建一个文本节点 => 接收参数为string类型的text内容

createAttribute() 创建一个属性节点 => 接收参数为string类型的属性名称

createComment() 创建一个注释节点 => 接收参数为string类型的注释文本

一、创建DOM节点
使用的命令是

var oDiv = document.createElement('div');

这样就创建了一个div标签。

二、插入DOM节点

移动DOM节点也就是把这个节点插入到html文档中的某个地方,这里js给了我们两个方法:

1.appendChild():把节点插入到父节点的末尾。

document.body.appendChild(oDiv);   //把div插入到body中,并且位于末尾

2.insertBefore():把节点插入到父节点的某个兄弟节点的前面。

var oP = createElement('p');  //创建一个p节点
document.body.insertBefore(oP,oDiv); //把p节点插入到div的前面

三.删除DOM节点

删除DOM节点的方法是removeChild()。

document.body.removeChild(oP);  //删除p节点

四.查找DOM节点

查找DOM节点的方法很多,常用的有:

getElementById()    //通过元素Id,唯一性

如html文档如下:

<body>
    <div id='box'></div>
</body>

这是可以使用getElementById()获取到id为box的div。

var oDiv = document.getElementById('box');

2.getElementsByTagName()   //通过元素的标签名来选择元素

var aDiv = getElementsByTagName('div');
要注意的是,getElementsByTagName()获取的是一组元素,所以如果想取得上面那个id为box的div要在后面加上[0];

var oDiv = getElementsByTagName('div')[0];

五、替换DOM节点

替换DOM节点的方法是replaceChild()。

var oSpan = document.createElement('span'); //创建一个span标签
document.body.replaceChild(oSpan,oBox); //用span标签替换div标签
最常用的DOM操作就是这些了,其他还有很多的方法,就目前而言,各浏览器兼容性不太好,所以还是推荐大家暂时只使用上述这些方法。

DocumentFragment节点不属于文档树,继承的parentNode属性总是null。它有一个很实用的特点,当请求把一个DocumentFragment节点插入文档树时,插入的不是DocumentFragment自身,而是它的所有子孙节点。这个特性使得DocumentFragment成了占位符,暂时存放那些一次插入文档的节点。它还有利于实现文档的剪切、复制和粘贴操作。 
另外,当需要添加多个dom元素时,如果先将这些元素添加到DocumentFragment中,再统一将DocumentFragment添加到页面,会减少页面渲染dom的次数,效率会明显提升。

DocumentFragment文档碎片(高效批量更新多个节点)

原始方法:

var parentNode = document.getElementsByTageName('ul')[0];

function appendDataToElement  (appendToElement, num) {

  let node; 

  for (let i = 0; i < num.length; i++) {

    node = document.createElement('li');

    node.innerHTML = i;

    appendToElement.appendChild(node);

  }

}

appendDataToElement (parentNode, num);

优化后:

var parentNode = document.ElementsByTageName('ul')[0],

   fragment = document.createDocumentFragment();

function appendDataToElement(appendToElement, num) {

  let node;

  for (let i = 0; i < num.length; i++) {

    node = document.createElement('li');

    node.innerHTML = i;

    fragment.appendChild(node);

  }

  appendToElement.appendChild(fragment);

}

appendDataToElement(parentNode, num);

JS常用操作节点的方法的更多相关文章

  1. (转)vim(vi)常用操作及记忆方法

    vim(vi)常用操作及记忆方法 原文:https://www.cnblogs.com/doseoer/p/6241443.html vi(vim)可以说是linux中用得最多的工具了,不管你配置服务 ...

  2. zepto.js常用操作

    zepto.js是移动端的jquery,但是并没有提供所有与jquery类似的api.Zepto设计的目的是有一个5-10k的通用库.下载并快速执行.有一个熟悉通用的API,所以你能把你主要的精力放到 ...

  3. vim(vi)常用操作及记忆方法

    vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它.但是,vim作为一个“纯字符”模式下的工具,它的操作和WINDOWS中的文本编辑工具相比多少有些复杂.这 ...

  4. js常用操作代码

    页面前进后退<input type=button value=刷新 onclick="window.location.reload()"><input type= ...

  5. js 常用数组和字符串方法

    javascript数组与字符串常用方法总结 最近在梳理js的基础,首先从数组和字符串开始. string 常用方法: 1.substring(start开始位置的索引,end结束位置索引) 截取的位 ...

  6. JS中插入节点的方法appendChild和insertBefore的应用

    1.appendChild() 方法:可以向节点的子节点列表的末尾添加新的子节点.比如:appendChild(newchild)括号里可以是创建的标签var newchild = document. ...

  7. JS(JavaScript)插入节点的方法appendChild与insertBefore

    首先 从定义来理解 这两个方法: appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点.语法:appendChild(newchild) insertBefore() 方法:可在 ...

  8. JS添加父节点的方法。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. js常用操作事件

    触发描述 方法 用法 点击 onclick="method();"   变换 onchange="testChange();"   双击 ondblclick= ...

随机推荐

  1. Linux which 查找命令

    在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 权限管理命令: which 基础的命令 命令名称:which 命令的所在路径:/usr/bin ...

  2. CodeForces——Game with string(STL stack栈)

    Two people are playing a game with a string ss, consisting of lowercase latin letters. On a player's ...

  3. IT行业技术及程序员相关网站荟萃

    最近我花了一些时间收集了一些与自己工作相关的常用的网址,由于时间关系,暂时只是收集了这么多,以后有时间再随时添加. 1.程序员网址导航pg265 http://www.pg265.com/TNT程序网 ...

  4. PHP实现用户登录页面

    PHP学习日常,放在上面记录一下咯 我用了bootstrap框架,这样的界面要好看一点 登录页面: 必须用户名.密码.验证码都输入正确才能登录成功喔,否则出现下面提示 登陆成功之后,登录和注册选项切换 ...

  5. 当项目只有src文件和web文件时eclipse如何导入javaweb工程

    原理是:利用工具生成class文件,并且在过程中检查出错误,生成对应的编译后文件,这样才能在tomcat等服务器上跑,服务器上只能跑编译后的文件. 1. 2. 3. . 4. 5. 6. 7.

  6. javascript 中not defined 和undefined有什么区别

    概念上的解释:undefined是javascript语言中定义的五个原始类中的一个,换句话说,undefined并不是程序报错,而是程序允许的一个值.not defined是javascript在运 ...

  7. POJ-1020-Anniversary Cake

    链接:https://vjudge.net/problem/POJ-1020 题意: 给一个宽为s的正方形,再给n个变长为an的小正方形, 判断是否能将这n个小正方形完全填充到这个大正方形里面. 思路 ...

  8. A.出题人的RP值

    链接:https://ac.nowcoder.com/acm/contest/358/A 题意: 众所周知,每个人都有自己的rp值(是个非负实数),膜别人可以从别人身上吸取rp值. 然而当你膜别人时, ...

  9. 命令行媒体处理工具 FFmpeg

    FFmpeg 是一套在命令行界面运行的跨平台媒体处理工具,属于自由软件,常用来对视频音频和图片等媒体文件进行格式转换.分割和合并等,也可录屏录音. 开发语言:C官网:https://www.ffmpe ...

  10. C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...