JavaScript之DOM

作者: 阿甘笔记 | 来源:发表于2016-05-25 14:29 被阅读66次

什么是DOM?

DOM 中的三个字母,D(文档)可以理解为整个 Web 加载的网页文档;O(对象)可以理解为类似 window 对象之类的东西,可以调用属性和方法,这里我们说的是 document对象;M(模型)可以理解为网页文档的树型结构。

DOM 有三个等级,分别是 DOM1、DOM2、DOM3,并且 DOM1 在 1998 年 10 月成为W3C 标准。

DOM节点

节点:加载 HTML 页面时,Web 浏览器生成一个树型结构,用来表示页面内部结构。DOM 将这种树型结构理解为由节点组成

节点种类:元素节点、文本节点、属性节点

DOM节点获取

getElementById()    获取特定 ID 元素的节点

注意问题:window.onload

元素节点 属性:tagName       innerHTML

HTML属性的属性:id      title    style     className

getElementsByTagName()    获取相同元素的节点列表

document.getElementsByTagName('*'); //获取所有元素

document.getElementsByTagName(‘*’).length

getElementsByName()      获取相同名称的节点列表

document.getElementsByName('add') //获取 input 元素

document.getElementsByName('add')[0].value //获取 input 元素的 value 值

document.getElementsByName('add')[0].checked//获取 input 元素的 checked 值

getAttribute(名称)    获取特定元素节点属性的值

setAttribute(名称,值)    设置特定元素节点属性的值

removeAttribute(名称) 移除特定元素节点属性

子节点:只取第一层

childNodes      例:oUl.childNodes                

兼容性问题:  FF空的文本节点也算作一个节点   IE:空的不算

解决方法:

 nodeType:节点类型    例:body.childNodes[0].nodeType

 返回值:1为元素节点      3为文本节点

Children    例:oUl.children

 IE\FF\谷歌都兼容

父节点:只有一个

parentNode 结构上的父级元素        例:oLi.parentNode

offsetParent 定位上的父级元素        例:oLi.offsetParent

首尾节点(有兼容性问题)

firstChild\firstElementChild 第一个子节点       

例:oFirst=oUl.firstElementChild || oUl.firstChild

lastChild\lastElementChild  最后一个子节点       

例:oLast=oUl.lastElementChild || oUl.lastChild

兄弟节点(有兼容性问题)

nextSibling\nextElementSibling  下一个节点       

例:oNext=oUl. nextElementSibling || oUl.nextSibling

previousSibling\previousElementSibling  上一个节点     

例:oPrevious=oUl. previousElementSibling || oUl. previousSibling

createElement() 创建一个元素节点

document.createElement('p'); //创建一个元素节点

createTextNode() 创建一个文本节点

var text = document.createTextNode('段落'); //创建一个文本节点

p.appendChild(text); //将文本节点添加到子节点末尾

appendChild() 将新节点追加到子节点列表的末尾

appendChild()方法讲一个新节点添加到某个节点的子节点列表的末尾上。

var box = document.getElementById('box'); //获取某一个元素节点

var p = document.createElement('p'); //创建一个新元素节点<p>

box.appendChild(p); //把新元素节点<p>添加子节点末尾

insertBefore() 将新节点插入在前面

box.parentNode.insertBefore(p, box); //在box(div)之前创建一个节点

replaceChild() 将新节点替换旧节点

var p=document.createElement('p');

box.parentNode.replaceChild(p,box); //把<div>换成了<p>

cloneNode() 复制节点

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

var clone = box.firstChild.cloneNode(true); //获取第一个子节点,       true 表示复制内容

box.appendChild(clone); //添加到子节点列表末尾

removeChild() 移除节点

box.parentNode.removeChild(box); //删除指定节点

文档碎片可以提高DOM操作性能(理论上)

文档碎片原理

    document.createDocumentFragment()

相关文章

  • DOM(一):Node属性与方法

    DOM之Node属性与方法思维导图 JavaScript-DOM之Node方法 Node.nodeType No...

  • Vue之虚拟DOM

    Vue之虚拟DOM 为什么要用到虚拟DOM? 众所周知,DOM操作是JavaScript语言的硬伤。浏览器对DOM...

  • DOM (javascript DOM节点操作)

    DOM (javascript DOM节点操作) 本节目录 查找DOM元素 DOM节点操作 javascript操...

  • JavaScript入门学习书籍到阶段书籍

    入门:《深入浅出JavaScript》《JavaScript DOM编程艺术》 《JavaScript DOM高级...

  • JavaScript之DOM

    什么是DOM? DOM 中的三个字母,D(文档)可以理解为整个 Web 加载的网页文档;O(对象)可以理解为类似 ...

  • javascript之DOM

    DOM文档对象模型 DOM文档对象模型是基于HTML树的api,这里可以把HTML结构看成是一颗树形结构,使用DO...

  • JavaScript 闯关记

    《JavaScript 闯关记》之 DOM(下) Element 类型 除了 Document 类型之外,Elem...

  • JavaScript HTML DOM

    JavaScript HTML DOM 通过 HTML DOM,可访问 JavaScript HTML 文档的所有...

  • 专辑篇:JS HTML DOM

    JavaScript HTML DOM 通过HTML DOM,可以访问JavaScript HTML文档的所有元素...

  • DOM 增删改查举例

    一 什么是DOM DOM是HTML与JavaScript相互作用的接口,DOM不属于JavaScript,它是浏览...

网友评论

    本文标题:JavaScript之DOM

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