1.1.    基本概念

1.1.1.       DOM

DOM Document Object Model 文档对象模型

就是把HTML文档模型化,当作对象来处理

DOM提供的一系列属性和方法可以视作一个工具箱,极大地方便了我们对文档的处理。

1.1.2.       内容概念

文档(Document):就是指HTML或者XML文件

节点(Node):HTML文档中的所有内容都可以称之为节点,常见的节点有

元素节点 属性节点 文本节点 注释节点

元素(Element):HTML文档中的标签可以称为元素

1.1.3.       结构概念

父节点 当前节点的父级

子节点 当前节点的子级

兄弟节点 和当前节点同属一个父级的节点

1.2.    获取元素

getElementById

通过id寻找一个元素(找到的是一个元素对象) 该方法只能被document对象调用(同一个文档中id不能重复)

getElementsByTagName

通过标签名寻找一类元素(找到的是由元素对象组成的伪数组)

即可以被document调用,又可以被元素对象调用,被元素对象调用时表示在该元素对象内部执行查找

1.3.    设置属性

元素对象.属性名 = “属性值”;

等价于

<标签 属性名=”属性值”>

1.4.    绑定事件

事件三要素

事件源.事件 = function(){ 事件处理程序 };

等价于

<标签 事件=”事件处理程序”>

对象方法中的this永远指的是该方法所属的那个对象

1.5.    常用属性

1.5.1.       常用标签属性

DOM对象的属性和HTML的标签属性几乎是一致的,常用的有src、title、className、href和style

其中className对应就是标签的class属性,但是由于class在JS中是关键字,所以变成了className

1.5.2.       内部文本属性

innerHTML

获取和设置标签中的内容,设置的内容会当作节点对象被解析到DOM树上

innerText

获取和设置标签中的内容,设置的内容会被当作普通文本(有兼容性问题,旧版ff不支持)

textContent

获取和设置标签中的内容,设置的内容会被当作普通文本(有兼容性问题,旧版IE不支持)

可以通过能力检测封装一个自己的设置内部文本的方法并放到自己的JS工具包中

1.5.3.       常用表单属性

常见的表单元素属性有: type、value、checked、selected、disabled

type可以设置input元素的类型

value可以设置input元素的值

checked可以设置input元素是否选中

selected 可以设置下拉列表select中的option是否被选中

disabled 可以设置input元素是否被禁用

文本框获取焦点和失去焦点

获取焦点事件是onfocus 失去焦点事件是onblur  (不是所有的标签都有这个事件) 更多详细内容可以查阅w3School

1.5.4.       自定义属性

对象的自定义属性

可以像给对象设置属性一样,给元素对象设置属性

标签的自定义属性

可以通过getAttribute()setAttribute()设置和获取标签属性,通过removeAttribute()移除标签的属性

正常浏览器中 HTML中有规定的属性 两种方式才可以相互设置和获取

总之用setAttribute设置的就用getAttribute获取 用对象的自定义属性设置的就用对象的自定义属性获取 以免出问题

1.6.    节点

1.6.1.       节点类型

node.nodeType

1表示元素节点 2表示属性节点 3表示文本节点

1.6.2.       节点层次

所有获取节点相关属性都没有兼容性问题

childNodes         //子节点

children               //子元素 虽然不是早期DOM标准中的方法,但是所有浏览器都支持

nextSibling //下一个兄弟节点

nextElementSibling //下一个兄弟元素 有兼容性问题

previousSibling//上一个兄弟节点

previousElementSibling //上一个兄弟元素 有兼容性问题

firstChild //第一个节点

firstElementChild //第一个子元素 有兼容性问题

lastChild //最后一个子节点

lastElementChild //最后一个子元素 有兼容性问题

parentNode //父节点 (一定是元素节点,所以无需处理)

1.7.    样式属性

style属性是对象,style对象的属性是字符串

style只能获取和设置行内样式

DOM对象中style的属性和标签中style内的值几乎一样

只是带有 - 的属性名较为特殊(如background-color变成了backgroundColor),因为在JS中 - 不能作为标识符

设置和获取样式

//通过对象的style属性只能设置和获取行内样式

//获取样式的时候 如果行内没有该样式 输出空字符串

//设置样式的时候 赋的值是一个字符串 如果这个属性有单位 一定要节点加单位

什么情况通过class控制样式 什么情况通过style控制样式

不严格的说:

//如果样式很多 通过 直接控制类名 的方式加样式

//如果样式比较少 通过直接设置比较方便

严格来说:

//从标准的角度讲 即使是样式比较少的时候 设置样式也要用类名

//但是有一类情况 是无论如何也必须直接通过JS加的 那就是涉及到计算的时候

1.8.    动态创建元素

1.8.1.       插入和移除节点

在父元素中的最后追加子元素

father.appendChild(要追加的元素);

在父元素中的某个子元素前面插入子元素

father.insertBefore(要插入的元素,插到这个元素的前面);

从父元素中移除子元素

father.removeChild(要移除的子元素);

1.8.2.       动态创建结构

方式一:直接在文档中书写

document.write(“内容”)

方式二:改变元素对象内部的HTML

innerHTML=”内容”

方式三:创建或克隆节点并追加

createElement()

cloneNode()

通过这两种方法创建出来的元素只是保存在内存中,必须放到页面上才行!

DOM精简版笔记的更多相关文章

  1. BOM和DOM(精简版)

    一.BOM 1.browser object model的缩写,简称浏览器对象模型 2.提供与浏览器窗口进行交互的对象 3.核心对象:window.除此之外还有:history,localtion,n ...

  2. HTML DOM(学习笔记二)

    嗯,在HTML DOM(学习笔记一)中简单描述了一下HTML DOM 是什么,这一篇将记录下来有关HTML DOM的内容! 1:DOM节点 首先,再来看一下HTML DOM的树状结构,如下图所示: 这 ...

  3. 用 JS 点击左右按钮 使图片切换 - 最精简版-ljx2380000-ChinaUnix博客

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  4. Vue精简版风格指南

    前面的话 Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,且代码间隔较大,不易查询.本文按照类型分类,并对部分示例或解释进行缩减,是Vue风格指南的精简版 组件名称 [组件 ...

  5. HTML DOM简易学习笔记

    文字版:https://github.com/songzhenhua/github/blob/master/HTML DOM简易学习笔记.txt 学习地址:http://www.w3school.co ...

  6. Linux上oracle精简版客户端快速部署

    RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能. 方案:用精简版实现客户端的快速部署 1.上传oracle精简版客户端到服务器/tmp目录 ...

  7. C++ Primer Plus 第六版笔记

    C++ Primer Plus 第六版笔记 关于对象声明的思考 转自:http://www.cnblogs.com/weiqubo/archive/2009/11/02/1930042.html C+ ...

  8. ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址

    原版ArcGIS for Desktop的ISO文件一般都在4.5G以上,一般人用不上里面很多工具,下载回来又浪费时间,现推出ArcGIS10.2.1精简版(里面只包含主程序.Data Interop ...

  9. TeamViewer12.0.71503(远程控制软件)精简版 单文件企业版介绍

    TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...

随机推荐

  1. javascript-table出现滚动条表格自动对齐

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Webbrowser中IHTMLElement、IHTMLElement2、IHTMLDocument2、IHTMLDocument2属性介绍

    一.IHTMLElement接口        ele.click  -----------点击事件 ele.setAttribute(const strAttributeName: WideStri ...

  3. Hadoop Api 基本操作

     hadoop环境配置好后,直接可以在window上进行调试.话不多说,直接上源码. package cn.terry; import java.io.FileInputStream; import ...

  4. jsfiddle将demo设置为public公开的

    jsfiddle的demo虽然可以通过链接分享给所有人,但是进入个人主页是没有的,需要将项目设置为公开public的 根据提示,打开demo项目页==>左侧菜单==>填写标题和描述==&g ...

  5. CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决

    在VBox上安装完CentOS6.5之后,首次使用时yum命令安装软件时,经常遇到"couldn't resolve host 'mirrorlist.centos.org"这个问 ...

  6. 【Fiddler学习】Fiddler面板的详细介绍(转)

    转自:https://www.cnblogs.com/GreenLeaves/p/6971452.html 下面开始分析主界面的功能区: 1.Fiddler菜单栏,上图黑色部分,包括捕获http请求, ...

  7. Basler和Matrox的配置及调试

    说明: 本系列博文是我自己研究生课题,采用做一步记录一步,在论文答辩结束或者机器设计结束之后才会附上源代码! 自从装好相机和设计好机械结构之后就没有继续进行下一步,这段时间花了三四天继续上次任务进行, ...

  8. 在虚拟机中安装ubuntu

    初始安装: 1.安装新虚拟机时,选择稍后安装操作系统,这可以自己设置语言等信息 2.修改自定义硬件:为网卡生成一个mac地址,(这里需要注意,有时网卡会冲突,导致连接时好时坏,以后可以删除掉网卡,重新 ...

  9. JAVA给图片添加水印

    package com.test; import org.junit.Test; import javax.imageio.ImageIO; import java.awt.*; import jav ...

  10. PHP获取中文首字母的函数

    PHP获取中文首字母的函数 <?php header("Content-type: text/html; charset=utf-8"); function getFirst ...