DOM、BOM 操作超级集合

本章内容:

  • 定义
  • 节点类型
  • 节点关系
  •  选择器
  • 样式操作方法style
  • 表格操作方法
  • 表单操作方法
  • 元素节点ELEMENT
  • 属性节点attributes
  • 文本节点TEXT
  • 文档节点 Document
  • 位置操作方法
  • 定时器
  • 弹出框
  • location
  • 其它
  • 事件操作
  • 实例

 

定义

文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。

 

节点类型

 12中节点类型都有NodeType属性来表明节点类型

节点类型 描述
1 Element 代表元素
2 Attr 代表属性
3 Text 代表元素或属性中的文本内容。
4 CDATASection 代表文档中的 CDATA 部分(不会由解析器解析的文本)。
5 EntityReference 代表实体引用。
6 Entity 代表实体。
7 ProcessingInstruction 代表处理指令。
8 Comment 代表注释。
9 Document 代表整个文档(DOM 树的根节点)。
10 DocumentType 向为文档定义的实体提供接口
11 DocumentFragment 代表轻量级的 Document 对象,能够容纳文档的某个部分
12 Notation 代表 DTD 中声明的符号。

 

节点关系

DOM、BOM 操作超级集合_第1张图片

nodeType 返回节点类型的数字值(1~12)
nodeName 元素节点:标签名称(大写)、属性节点:属性名称、文本节点:#text、文档节点:#document
nodeValue 文本节点:包含文本、属性节点:包含属性、元素节点和文档节点:null
parentNode 父节点
parentElement 父节点标签元素
childNodes 所有子节点
children 第一层子节点
firstChild 第一个子节点,Node 对象形式
firstElementChild 第一个子标签元素
lastChild 最后一个子节点
lastElementChild 最后一个子标签元素
previousSibling 上一个兄弟节点
previousElementSibling 上一个兄弟标签元素
nextSibling 下一个兄弟节点
nextElementSibling 下一个兄弟标签元素
childElementCount 第一层子元素的个数(不包括文本节点和注释)
ownerDocument 指向整个文档的文档节点



    
    Title


    

Nick

View Code

节点关系方法:

hasChildNodes()  包含一个或多个节点时返回true

contains()  如果是后代节点返回true

isSameNode()、isEqualNode()  传入节点与引用节点的引用为同一个对象返回true

compareDocumentPostion()  确定节点之间的各种关系

数值     关系 
1      给定节点不在当前文档中
2      给定节点位于参考节点之前
4      给定节点位于参考节点之后
8      给定节点包含参考节点
16    给定节点被参考节点包含
compareDocumentPostion() 节点对应关系



    
    Title


    

Nick

View Code

 

选择器

getElementById()

一个参数:元素标签的ID
getElementsByTagName() 一个参数:元素标签名
getElementsByName() 一个参数:name属性名
getElementsByClassName() 一个参数:包含一个或多个类名的字符串

classList

返回所有类名的数组

  • add (添加)
  • contains (存在返回true,否则返回false)
  • remove(删除)
  • toggle(存在则删除,否则添加)
querySelector() 接收CSS选择符,返回匹配到的第一个元素,没有则null
querySelectorAll() 接收CSS选择符,返回一个数组,没有则返回[]

 


    
View Code

 

样式操作方法style

style.cssText 可对style中的代码进行读写
style.item() 返回给定位置的CSS属性的名称
style.length style代码块中参数个数
style.getPropertyValue() 返回给定属性的字符串值
style.getPropertyPriority() 检测给定属性是否设置了!important,设置了返回"important";否则返回空字符串
style.removeProperty() 删除指定属性
style.setProperty() 设置属性,可三个参数:设置属性名,设置属性值,是否设置为"important"(可不写或写"")



    
    Title


    
8
View Code

 

表格操作方法

元素,返回引用

元素

元素,返回引用

元素,从0开始

createTHead()

创建

deleteTHead()

 删除

createTBody()

创建

insertRow(0)

插入

deleteRow(pos)

 删除指定位置的行

insertCell(0)

插入

元素,从0开始

deleteCell(pos)

 删除指定位置的单元格




    
    Title


    

View Code

 

表单操作方法

document.forms

获取所有表单

.submit()

提交表单



    
    


    
View Code

 

元素节点ELEMENT

nodeType:1

nodeName 访问元素的标签名
tagName 访问元素的标签名
createElement() 创建节点
appendChild() 末尾添加节点,并返回新增节点
insertBefore() 参照节点之前插入节点,两个参数:要插入的节点和参照节点
insertAfter() 参照节点之后插入节点,两个参数:要插入的节点和参照节点
replaceChild() 替换节点,两个参数:要插入的节点和要替换的节点(被移除)
removeChild() 移除节点
cloneNode() 克隆,一个布尔值参数,true为深拷贝,false为浅拷贝
importNode() 从文档中复制一个节点,两个参数:要复制的节点和布尔值(是否复制子节点)
insertAdjacentHTML()

插入文本,两个参数:插入的位置和要插入文本

  • "beforebegin",在该元素前插入
  • "afterbegin",在该元素第一个子元素前插入
  • "beforeend",在该元素最后一个子元素后面插入
  • "afterend",在该元素后插入



    
    Title


    

Nick

View Code



    
    title


    
View Code

 

属性节点attributes

nodeType:2

attributes

获取所有标签属性
getAttribute() 获取指定标签属性
setAttribute() 设置指定标签属
removeAttribute() 移除指定标签属

var s = document.createAttribute("age")

s.nodeValue = "18"

创建age属性

设置属性值为18




    
    Title


    
View Code



    
    Title


    
View Code

 

文本节点TEXT

nodeType:3

innerText 所有的纯文本内容,包括子标签中的文本
outerText 与innerText类似
innerHTML 所有子节点(包括元素、注释和文本节点)
outerHTML 返回自身节点与所有子节点
textContent 与innerText类似,返回的内容带样式
data 文本内容
length 文本长度
createTextNode() 创建文本
normalize() 删除文本与文本之间的空白
splitText() 分割
appendData() 追加
deleteData(offset,count) 从offset指定的位置开始删除count个字符
insertData(offset,text) 在offset指定的位置插入text
replaceData(offset,count,text) 替换,从offset开始到offscount处的文本被text替换
substringData(offset,count) 提取从ffset开始到offscount处的文本



    
    Title


    
Nick
View Code



    
    Title


    
1
2
3
View Code

 

文档节点 Document

nodeType:9

document.documentElement 代表页面中的元素
document.body 代表页面中的元素
document.doctype 代表标签
document.head 代表页面中的元素
document.title 代表元素的文本,可修改</td> </tr> <tr> <td>document.URL</td> <td>当前页面的URL地址</td> </tr> <tr> <td>document.domain</td> <td>当前页面的域名</td> </tr> <tr> <td>document.charset</td> <td>当前页面使用的字符集</td> </tr> <tr> <td>document.defaultView</td> <td>返回当前 <code>document</code>对象所关联的 <code>window</code> 对象,没有返回 <code>null</code></td> </tr> <tr> <td>document.anchors</td> <td>文档中所有带name属性的<a>元素</td> </tr> <tr> <td>document.links</td> <td>文档中所有带href属性的<a>元素</td> </tr> <tr> <td>document.forms</td> <td>文档中所有的<form>元素</td> </tr> <tr> <td>document.images</td> <td>文档中所有的<img>元素</td> </tr> <tr> <td>document.readyState</td> <td>两个值:loading(正在加载文档)、complete(已经加载完文档)</td> </tr> <tr> <td>document.compatMode</td> <td> <p>两个值:BackCompat:标准兼容模式关闭、CSS1Compat:标准兼容模式开启</p> </td> </tr> <tr> <td> <p>write()、writeln()、</p> <p>open()、close()</p> </td> <td> <p>write()文本原样输出到屏幕、writeln()输出后加换行符、</p> <p>open()清空内容并打开新文档、close()关闭当前文档,下次写是新文档</p> </td> </tr> </tbody> </table> <p> </p> <h2>位置操作方法</h2> <table border="0"> <tbody> <tr> <td> <p>document.documentElement.offsetHeight</p> </td> <td> <p>文档总高度</p> </td> </tr> <tr> <td>document.documentElement.clientHeight</td> <td> <p>文档占当前屏幕高度</p> </td> </tr> <tr> <td>document.documentElement.clientWidth</td> <td> <p>文档占当前屏幕宽度</p> </td> </tr> <tr> <td> <p>offsetHeight</p> </td> <td>自身高度(height + padding + border)</td> </tr> <tr> <td> <p>scrollHeight</p> </td> <td>文档高度(height + padding)</td> </tr> <tr> <td> <p>offsetTop</p> </td> <td>距离上级标签定位高度(magin)</td> </tr> <tr> <td> <p>clientTop</p> </td> <td> <p>border高度(border)</p> </td> </tr> <tr> <td> <p>offsetParent</p> </td> <td>父级定位标签,元素</td> </tr> <tr> <td> <p>scrollTop</p> </td> <td> <p>滚动高度</p> </td> </tr> </tbody> </table> <p> </p> <div class="cnblogs_code"> <img id="code_img_closed_c1d1ccb3-b7dc-4a16-84ec-e6b70ca657f2" class="code_img_closed" src="http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif" alt="" width="0" height="0"> <img id="code_img_opened_c1d1ccb3-b7dc-4a16-84ec-e6b70ca657f2" class="code_img_opened" src="http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif" alt="" width="0" height="0"> <div id="cnblogs_code_open_c1d1ccb3-b7dc-4a16-84ec-e6b70ca657f2" class="cnblogs_code_hide"> <pre><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title
View Code

 

定时器

setInterval 多次定时器(毫秒计时)
clearInterval 清除多次定时器
setTimeout 单次定时器
clearTimeout 清除单次定时器



    
    Title


    
    
    

定时器示例

 

弹出框

alert() 弹出框
confirm()

确认框

返回值:true、false

prompt()

输入框

两个参数:提示的文本和输入的默认值,返回值:输入的值、""、null

var result = prompt("What is your name?" ,"Nick");
if(result != null){
    alert("welcome,"+result);    
}
console.log(result)
prompt

 

location

location.href

location.href = "url"

获取URL

重定向

location.assign("http://www.cnblogs.com/suoning")

重定向到URL

location.search = "wd=suoning"

修改查询字符串(百度搜索)

location.hostname

服务主机名,例:www.cnblogs.com

location.pathname

路径,例:suoning

location.port

端口号

location.reload()

重新加载

 

其它

navigator 包含有关浏览器的信息
screen 包含有关客户端显示屏幕的信息
history 包含用户(在浏览器窗口中)访问过的 URL
window.print();

显示打印对话框

//后退一页
history.go(-1)
//前进一页
history.go(1);
//前进两页
history.go(2);
//无参数时,刷新当前页面
history.go()

//后退一页
history.back()
//前进一页
history.forward()
history 方法

 

事件操作

DOM、BOM 操作超级集合_第2张图片

 

实例:




    
    Title


    
    
    

    



搜索框
搜索框



    
    Title


    
 瓜子花生款泉水,抽烟喝酒大保健 
跑马灯



    
    Title
    


    

爱好

  • 篮球
  • 足球
  • 乒乓球
全选、反选



    
    Title
    


    
用户名:
密 码:
模态对话框



    
    Title
    



    
床前明月管
疑是地上霜
我是郭德纲
书签章节



    
    Title
    


    
  • 索尼
  • 谷歌
  • 腾讯
1...
2...
3...
菜单



    
    Title
    


    
返回顶部

 

转载于:https://www.cnblogs.com/suoning/p/5656922.html

你可能感兴趣的:(DOM、BOM 操作超级集合)