美文网首页
常用的DOM操作

常用的DOM操作

作者: Mescal川 | 来源:发表于2016-10-26 23:34 被阅读111次

DOM(文档对象模型)操作是前端开发人员必须熟练掌握的技术,在与用户进行交互、处理后端返回的JSON(XML)文件等地方都需要用到DOM操作,下面列举一些常用的DOM操作。


1.获取节点

document.getElementById("myDiv");
document.getElementsByTagName("div");//一个集合,[0]获取集合中的第一个元素
document.getElementsByClassName("myDiv");//IE9以下不支持

2.创建节点

var myDiv = document.createElement("myDiv");
myDiv.innerHTML="我是新创建的节点";
document.getElementsByTagName("body")[0].appendChild(myDiv)//将新创建的节点追加到body中

document.createTextNode()方法同样用于添加文本,相对于innerHTML更加安全,并且兼容各主流浏览器。

3.插入、删除、创建节点

var father=document.getElementById("father");//获取父层div引用
var node1=document.getElementById("son");//获取父层下的一个子元素
var node2=document.createElement("div");
node2.innerHTML="我是新创建的";
father.appendChild(node2);//node2插入到最后的位置
father.insertBefore(node2,null);//同上
father.insertBefore(node2,node1);//node2插入到node1前面
father.replaceChild(node2,node1);//node2替换掉node1
father.removeChild(node1);//将node1从father节点中删除

4.节点复制

var cloneNode=father.cloneNode(true);//参数为true代表深复制(复制节点及其整个子节点树)参数为false代表浅复制(只复制节点本身)

5.设置、获取、删除节点属性

myDiv.setAttribute("id","first");
myDiv.getAttribute("id");//不能获取用户自定义的属性
myDiv.removeAttribute("id");

6.常用节点属性

myDiv.nodeName;//返回节点的名称
myDiv.nodeType;//返回节点的类型
myDiv.nodeValue;//返回节点的值(用于input等表单)
myDiv.childNodes;//返回子节点集合(包含空白换行等非元素节点)
myDiv.firstChild;//返回第一个子节点
myDiv.firstElementChild;//返回第一个元素子节点
myDiv.lastChild;//返回最后一个子节点
myDiv.lastElementChild;//返回最后一个元素子节点
myDiv.previousSibling;//返回前一个兄弟节点
myDiv.previousElementSibling;//返回前一个元素兄弟节点
myDiv.nextSibling;//返回后一个兄弟节点
myDiv.nextElementSibling;//返回后一个元素兄弟节点
myDiv.parentNode;//返回父节点
element.attributes["id"];//返回含有id属性的节点集合

7.处理后端返回的JSON

//xhr.onreadystatechange函数中
var json=JSON.parse(xhr.responseText);
for(var i=0;i<json.length;i++)
{
    //创建节点、添加属性、插入到document中
}

8.DOM操作优化

DOM操作会对浏览器的性能造成影响,因此要尽可能的减少甚至避免DOM操作。

//不推荐的做法
for(var i=0;i<json.length;i++)
{
    var div = document.createElement("div");
    div.innerHTML(json[i]);
    father.appendChild(div);
}
//推荐的做法
var fragment = document.createDocumentFragment();
for(var i=0;i<json.length;i++)
{
    var div = document.createElement("div");
    div.innerHTML(json[i]);//用innerHTML来代替createTextNode
    fragment.appendChild(div);
}
father.appendChild(fragment);

当DOM操作规模非常大时,将容器的display设为none,等节点操作完成后再设为可见,原理是隐藏的元素不会产生reflow(重构)。

尽可能地通过添加class来修改样式。

相关文章

  • DOM常用API

    Javascript操作DOM常用API总结 文本整理了javascript操作DOM的一些常用的api,根据其作...

  • DOM常用操作

    什么是DOM? Document Object Model MDN: 文档对象模型 (DOM) 是HTML和XML...

  • 常用DOM操作

    前言 很多同学用惯了jquery操作dom,让他们用js操作的时候,常常力不从心,本文总结了常用的js的dom操作...

  • 常用DOM操作

    一. 选择DOM 二. 节点属性 访问节点属性 访问节点的 Attribute 三. 获取关系节点 四. 创建新节...

  • JavaScript常用API合集

    JavaScript常用API合集 本文分享了一些JavaScript常用的代码,有DOM操作、CSS操作、对象(...

  • 常用的DOM操作

    DOM(文档对象模型)操作是前端开发人员必须熟练掌握的技术,在与用户进行交互、处理后端返回的JSON(XML)文件...

  • 常用的DOM操作?

    1.背景介绍: DOM是什么? DOM 是 Document Object Model(文档对象模型)的缩写。 D...

  • DOM基础

    本文主要内容包括DOM概念的介绍、DOM对象的一些常用属性和方法、如何获取DOM节点的父子、相邻元素以及常用的操作...

  • DOM(文档对象模型)

    问题 1、DOM是哪种基本数据结构?(树) 2、DOM操作常用API? 3、DOM节点的attr和property...

  • WEB相关

    zBase -- 轻量级 DOM 操作库 没有任何依赖轻量级的 Dom 操作库,封装一些常用的 css 选择器和事...

网友评论

      本文标题:常用的DOM操作

      本文链接:https://www.haomeiwen.com/subject/ldejuttx.html