1、   DOM概念

全称为 Document Object Model,译为文档对象模型

D:文档 - DOM将HTML页面解析为一个文档 —> document对象

O:对象 - DOM将HTML页面中内容解析为对应的对象

M:模型 - DOM中对象之间的关系(节点树结构)

DOM的级别:0 级别:不是W3C的规范;    1、2、3级是W3C规范

l W3C对DOM的定义

DOM是一个独立于任何语言和平台的接口,允许任何语言或脚本动态地访问和更新HTML文档的内容、结构和样式。该HTML页面可以进一步处理,并且该处理的结果可以被合并到所呈现的HTML页面中。

l DOM的组成部分

DOM CORE;       DOM HTML;      DOM CSS;     DOM XML;

2DOM节点树

² DOM树结构

将HTML页面解析为一个树形结构

l 节点:

概念:树结构中每个连接的地方(元素、属性和文本)

(1)文档节点---表示整个HTML 页面(相当于document 对象)

(2)元素节点---表示HTML页面中的标签(即HTML页面的结构)

(3)属性节点:

(4)文本节点---表示HTML页面中的标签所包含的文本内容。

l  判断节点类型:

3、事件

概念:HTML页面或者浏览器窗口发生的一些交互瞬间

分类:键盘事件

键盘事件表示当用户操作键盘时发生。

onkeydown     用户按下一个按键; onkeyup    用户松开一个按键

onkeypress      键盘的按键按了一下( keydown + keyup 的组合)

oninput  输入事件

event事件对象提供哪些获取到有关键盘的属性

charCore 得到对应键盘的值-97

keyCode 得到对应键盘的值-97

which 得到对应键盘的值-97

注:三个event事件对象的属性,IE8及以下版本均不支持

key 得到对应键盘的值-a

鼠标事件

click 用户单击鼠标按键; dblclick     用户双击鼠标按键

mousedown     用户按下鼠标按键; mouseup    用户松开鼠标按键

mouseover       用户将鼠标移到指定标签上; mousemove       用户移动鼠标

mouseout 用户将鼠标从指定标签上移开

  • Ø 事件的执行流程:

获取 HTML 页面中指定的标签;为指定标签绑定指定事件;编写事件发生时的逻辑代码。

var 名称 = document.getElementById('id的名称');

名称.onclick=function( ){内容输出}

  • Ø HTML文档的加载:

想要在head里面运行script 需要head中script添加window.onload = function( ){ }

4Document对象

document对象作为DOM解析HTML页面的入口

u     DOM查询

² 优点:速度快,性能好; 缺点:单操作麻烦

getElementById( ):通过元素的id属性查找

注: 元素的id属性值必须是唯一的; 通过该方法获取的元素只能是唯一的

getElementsByName( ):通过元素的name属性查找

注: 元素的name属性不唯一,可能多个元素相同name属性; 通过该方法获取的元素可能是一个,也可能是多个。结构非常类似于数组的结构,但并不是一个数组。

结果类型—> NodeList(节点集合);类似于数组结构的对象—>类数组对象

getElementsByTagName( ) :通过元素的标签名查找

getElementsByClassName( ):通过元素class属性查找(新增方法,IE 8及以下浏览器不可

解决兼容性问题 -自定义函数

function getElementsByClassName(element,className){

if(document.getElementsByClassName){

}else{

}

}

² 优点:操作方便;      缺点:速度慢,性能差

querySelector( ) - 利用CSS选择器的用法

作用:返回与css选择器匹配的第一个元素

querySelectorAll( ) - 利用CSS选择器的用法

作用:返回与css选择器匹配的所有元素

u     NodeList类型

 

  • 动态NodeList

含义 - 获取的集合随着页面的变化而变化;   特点 - 执行速度快,耗时短

方法:getElementsByName( )   getElementsByTagName( )  getElementsByClassName( )

  • 静态NodeList

含义 - 获取的集合不会随着页面而变化;    特点 - 执行速度慢,耗时长

方法 - querySelectorAll()

u     创建节点:

² 元素节点 - createElement(‘标签名‘)

² 属性节点 - createAttribute(‘属性名‘)

步骤:                       [创建属性节点时,只能定义属性名,而不能定义属性值]

1. 创建属性节点: var attr = createAttribute(属性名)

2. 设置属性节点的值: attr.nodeValue = value;

3. 添加属性节点: A.setAttributeNode(B)    将B添加到A 上

注:属性节点不是一个子节点,不可用 ( A)appendChild(B )

² 文本节点 - createTextNode(文本内容)

  • Ø document对象属性(获取元素):

documentElement属性:获取页面中<html>;  即document. documentElement

head属性:获取页面中<head> ;    即document. head

body属性:获取页面中<body>;   即document. body

forms属性:获取HTML页面中所有的表单元素  即document. forms

images属性:获取HTML页面的图片元素      即document. images

DOM基础知识(概念、节点树、事件、Document)的更多相关文章

  1. HTML DOM基础知识

    HTML DOM基础知识 一.什么是DOM? 1.HTML DOM 定义了访问和操作HTML文档的标准方法. 2.HTML DOM 把 HTML 文档呈现为带有元素.属性和文本的树结构(节点树). 3 ...

  2. HTML DOM 基础知识,成为javascript晋级高手的必备手册

    一.DOM 简介,什么是 DOM? 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口. 标记语言,也称置标语言,是一种将文本( ...

  3. DOM基础知识整理

    --<JavaScript高级程序设计>Chapter10学习笔记 一.节点层次 1.Node类型 1)(Node).nodeType属性 节点nodeType属性有12种. 检测node ...

  4. javascript中DOM基础知识介绍

    1.1.     基本概念 1.1.1.      DOM DOM Document Object Model 文档对象模型 就是把HTML文档模型化,当作对象来处理 DOM提供的一系列属性和方法可以 ...

  5. DOM基础+domReady+元素节点类型判断

    DOM节点类型  nodeType element  1    Node.ELEMENT_NODE   元素节点 attr  2   Node.ATTRIBUTE_NODE  属性节点 text  3 ...

  6. Javascript--HTML DOM基础知识

    1.HTML DOM是什么,以及它的作用: w3c对DOM有一系列的解释和定义,用自己理解的话来说就是:HTML DOM是html的标准对象模型,可以使JavaScript去操作(获取,修改,删除,添 ...

  7. DOM基础知识

    DOM BOMDOM 文档对象模型 document.BOM 浏览器界面上所有内容 broder object.没有括号属性.()方法 DOM写法 document.作用 做特效 找到 摘出元素 增删 ...

  8. DOM基础知识(Node对象、Element对象)

    5.Node对象 u  遍历节点 u 父节点 .parentNode - 获取父节点—> 元素节点或文档节点 .parentElement - 获取父元素节点—> 元素节点 u    子节 ...

  9. asp.net架构基础知识--页面以及全局事件

    1.asp.net的请求过程,以及对应的处理请求的dll客户的请求页面由aspnet_isapi.dll这个动态连接库来处理,把请求的aspx文件发送给CLR进行编译执行,然后把Html流返回给浏览器 ...

随机推荐

  1. 定时器篇---java.util.TimerTask和quartz

    最近项目中出现了定时执行任务的东西,研究了一下,觉得挺不错的,以后还用得到,就总结了下. 这里只介绍两种java.util.Timer 和 quartz java.util.Timer java自带的 ...

  2. Windows负载机JVM 远程监控Linux服务器下tomcat

    基本是跟着网上的操作进行的,除了遇到一个Local host name unknown的问题: 一.Linux服务器操作部分 服务器地址:10.64.111.68 首先配置JMX: 1.找到jdk目录 ...

  3. spring注解略解

    @Scope("prototype") 如果ACTION中不@Scope("prototype"),有可能报找不到XXXACTION的错误!写上这个就表示每次请 ...

  4. jq图片懒加载

    jQuery图片延迟加载插件jQuery.lazyload,使用延迟加载在可提高网页下载速度.在某些情况下,它也能帮助减轻服务器负载. 使用方法 引用jquery和jquery.lazyload.js ...

  5. MongoDB经典入门(1)--安装

    一.前言 最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下.本人不才,借着自 学的机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论 ...

  6. 一文带您了解5G的价值与应用

    一文带您了解5G的价值与应用 5G最有趣的一点是:大多数产品都是先有明确应用场景而后千呼万唤始出来.而5G则不同,即将到来的5G不仅再一次印证了科学技术是第一生产力还给不少用户带来了迷茫——我们为什么 ...

  7. 安装ubuntu14.04之后要做的一些事

    前言: 用ubuntu14.04也有一段时间了,感觉与之前版本相比还是在挺多方面有了改进.但刚装完还是有一些小问题需要自己动手解决.鉴于网上的内容太过零碎,有些方案也太过老旧,因此在这里为大家总结一些 ...

  8. HTML5学习(一)

    HTML5学习 HTML5的基本结构 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content ...

  9. VUEX 总结

    What is Vuex? vuex是一个专为Vue.js应用程序开发的状态管理模式.他采用集中式储存管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变换 VUEX并不限制你的代 ...

  10. RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第五篇【AppiumLibrary校验函数介绍】

    http://blog.csdn.net/deadgrape/article/details/50619050 以上连作者先跪一下方便面,在上一篇中,作者遗漏了两个常用的函数: 1.长按 Long P ...