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              //子元素 虽然不是

nextSibling //下一个兄弟节点

nextElementSibling //下一个兄弟元素 有兼容性问题 可以封装一个兼容性方法

previousSibling//上一个兄弟节点

nextElementSibling //下一个兄弟元素 有兼容性问题 可以封装一个兼容性方法

firstChild //第一个节点

firstElementChild //第一个子元素 有兼容性问题 可以封装一个兼容性方法

1.7.     样式属性

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

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

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

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

1.8.     动态创建元素

1.8.1.      创建节点

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

document.write(“内容”)

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

innerHTML=”内容”

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

createElement()

cloneNode()

appendChild()

javascript中DOM基础知识介绍的更多相关文章

  1. day29—JavaScript中DOM的基础知识应用

    转行学开发,代码100天——2018-04-14 JavaScript中DOM操作基础知识即对DOM元素进行增删改操作.主要表现与HTML元素的操作,以及对CSS样式的操作.其主要应用知识如下图: 通 ...

  2. HTML DOM基础知识

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

  3. HTML中DOM核心知识有哪些(带实例超详解)

    HTML中DOM核心知识有哪些(带实例超详解) 一.总结: 1.先取html元素,然后再对他进行操作,取的话可以getElementById等 2.操作的话,可以是innerHtml,value等等 ...

  4. Nginx基础知识介绍

    Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...

  5. TCP_Wrappers基础知识介绍

    1. TCP_Wrappers基础知识介绍 TCP_Wrappers是在 Solaris, HP_UX以及 Linux中广泛流行的免费软件.它被设计为一个介于外来服务请求和系统服务回应的中间处理软件. ...

  6. Swift Playgrounds for mac基础知识介绍

    Swift Playgrounds是一款适用于iPad和Mac的革命性应用程序,它使Swift学习变得互动而有趣.它不需要编码知识,因此非常适合刚开始的学生.使用Swift解决难题,以掌握基本知识.S ...

  7. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  8. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  9. JavaScript中的基础测试题

                                                                                                    Java ...

随机推荐

  1. C#中的引用传递和值传递。

    最近在写项目中有同事碰到这样的传值问题,可能很多对这个参数的传递还有点疑惑,自己也是对这个基础知识做一个回顾和巩固. 首先什么是值类型和引用类型可以去园里看一下相关的资料,都有介绍. 常用值类型包括: ...

  2. 【从零开始】【Java】【3】改造成多模块项目

    闲聊 前几天还是太懒惰了,毕竟也是世界杯期间嘛,可以自我理解的,嘿嘿. 毕竟是从头开始,但是不一定适合所有新入门的人,所以搭框架啊.引入框架什么的,是占据最开始时间比较多的,代码层面的,可能要到靠后面 ...

  3. mvvm模式和mvc模式 概述总结对比

    1.mvc模式简介: MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范.例如: angular ...

  4. apiCloud组件:swiper

    一.apicloud中基于swiper封装了一个模块供调用.就是swiper.js 页面引入js就行 <script type="text/javascript" src=& ...

  5. Day 14 匿名函数

    递归之二分法 def sc_func(num,lis): lis_len=int(len(lis)/2) binary_num=lis[lis_len] # print(binary_num) if ...

  6. linux系统时间与网络时间不同步

    在解决问题之前,我们首先来了解下面几个知识点: 1. date命令: #date 显示系统时间 2.hwclock命令   (即hardwareclock系统硬件时间) #hwclock 显示硬件时间 ...

  7. 一个很好的JS,ASP二级下拉框联动。

    在我们制作网站会员注册信息时,一般会涉及到填写自己所在省/市,如果用input或textarea做成填写形式不太理想.所以大部分网站都会选择联动下来列表形式,做起来也不算很复杂,同时看上去也很轻松. ...

  8. nyoj2-吝啬的国度

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  9. [luogu2216 HAOI2007] 理想的正方形 (2dST表 or 单调队列)

    题目描述 有一个ab的整数组成的矩阵,现请你从中找出一个nn的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至第a ...

  10. Python半双工聊天

    半双工聊天 半双工聊天.创建一个简单的半双工聊天程序.指定半双工,我们的意思就是,当建立一个连接且服务开始后,只有一个人能打字,而另一个参与者在得到输入消息提示之前必须等待消息.并且,一旦发送者发送了 ...