一.DOM简介

Document Object Model 文档对象模型

DOM包含了所有HTML元素的属性和方法,以及访问他们的方式;

#二.DOM节点

#1. 什么是节点?

HTML中所有的元素都是一个节点

整个文档是文档节点

所有的标签都是元素节点

标签内的属性是属性节点

标签内的文本是文本

IMG_256

#2. 节点属性

  Ele.nodeName Ele.nodeType Ele.nodeValue
元素节点 大写的标签名 1 null
属性节点 属性名 2 属性值
文本节点 #text 3 文本内容
注释节点 #comment 8 注释内容
文档节点 #document 9 null

***\ ** ** 元素的tagName等价于nodeName

#3. 节点关系

会识别空白文本(不常用)

元素.firstChild 第一个子节点

元素.lastChild 最后一个子节点

元素.childNodes 获取所有的子节点

元素.attributes 获取某个元素的所有属性节点

元素.nextSibling 获取下一个兄弟节点

元素.previousSibling 获取上一个兄弟节点

不识别空白文本

元素.children 获取所有的元素子节点

元素.firstElementChild 获取第一个元素子节点

元素.lastElementChild 获取最后一个元素子节点

元素.nextElementSibling 获取下一个元素兄弟节点

元素.previousElementSibling 获取上一个元素兄弟节点

元素.parentNode 父节点

#三.查找元素

语法:元素.getElementById(“id”)

功能:通过id名查找元素

返回值:DOM对象

语法:元素.getElementsByTagName(“tag”)

功能:通过标签名查找元素

返回值:类数组

语法:元素.getElementsByClassName(“class”)

功能:通过class名查找元素

返回值:类数组

语法:元素.querySelector("css选择器");

功能:根据css选择器查找,只找一个

返回值:DOM对象

语法:元素.querySelectorAll("css选择器");

功能:根据css选择器查找,找所有

返回值:类数组

类数组转数组:

**[... ** 类数组];

Array.from(类数组);

#四.元素类名

classList: 所有类名组成的类数组

classList.add() 添加类名

classList.remove() 删除类名

classList.contains() 检测类名是否存在,返回布尔值

classList.toggle() 类名存在则删除,类名不存在则添加

#五.课堂案例

#1. 选中高亮

效果图

img

功能思路分析:

\1. 给每一个li绑定点击事件(forEach)

\2. 点击事件中,利用排他思想,先去掉所有标签的类名

\3. 再给当前标签加上类名

#2.手风琴

效果图:

功能思路分析:

\1. 给每一个li绑定点击事件(forEach)

\2. 点击事件中,利用排他思想,先去掉所有标签的类名

\3. 再给当前标签加上类名

img

#3.选项卡

效果图

功能思路分析:

\1. 淡入淡出效果需要先将所有的图片定位在一起,修改他们的透明度(opacity)

\2. 给每一个导航信息绑定点击事件

\3. 点击事件中,利用排他思想去掉所有的类名,并找到对应下标的图片去掉类名

\4. 给点击的元素加上类名,并找到对应下标的图片加上类名(classList.add)

#六.今日小结

1.节点关系: firstElementChild lastElementChild

previousElementSibling nextElementSibling

children parentNode

2.查找元素: document.querySelector( ‘css选择器’)

document.querySelector( ‘css选择器’)

3.类名操作: classList.add() classList.remove()

classList.contains() classList.toggle()

#七.作业 -- 轮播图

将案例3选项卡改编成轮播图效果

\1. 加上定时器(setInterval)自动轮播

\2. 添加左右箭头,上一页下一页切换

js下 Day02、DOM文档对象模型的更多相关文章

  1. JS第二部分--DOM文档对象模型

    一.DOM的概念 二.DOM可以做什么 三.DOM对象的获取 四.事件的介绍 五.DOM节点标签样式属性的操作 六.DOM节点对象对值的操作 七.DOM节点-标签属性的操作(例如id class sr ...

  2. 认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。元素、属性和文本的树结构(节点树)。

    认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...

  3. xml.dom——文档对象模型API

    文档对象模型,或者“DOM”,是一个跨语言API的World Wide Web Consortium(W3C)来访问和修改XML文档.DOM的实现提供了一个XML文档树结构,或允许客户机代码从头开始建 ...

  4. Javascript - DOM文档对象模型

    文档对象模型(DOM) DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的APIJavascript和DOM一般经常作为一个整体,因为Ja ...

  5. JavaScirpt(JS)——DOM文档对象模型

    一.HTML DOM介绍 HTML DOM 是 W3C 标准(是 HTML 文档对象模型的英文缩写,Document Object Model for HTML). HTML DOM 定义了用于 HT ...

  6. JavaScript学习笔记7 之DOM文档对象模型

    一.什么是DOMDocument Object Model 文档 -------对象 ----模型-------缩写DOM DOM是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘 ...

  7. DOM 文档对象模型

    document 对象(作为对象),是 DOM 的核心作用:对内容,属性,样式等操作属性:title:设置/返回当前文档的标题url:返回当前文档的 urlinnerHTML:获取指定对象内的内容bg ...

  8. JavaScript学习总结(一)DOM文档对象模型

    一.文档(D) 一个网页运行在浏览器中,他就是一个文档对象. 二.对象(O) "对象"是一种自足的数据集合.与某个特定对象相关联的变量被称为这个对象的属性,只能通过某个对象调用的函 ...

  9. DOM文档对象模型

随机推荐

  1. 公式编辑器MathType之入门攻略

    许多时候在工作.学习,尤其是写文献时,需要在Word文档中输入较多公式,简单的公式或符号,可以借助Word自带的公式编辑器,但是,遇到较多并且复杂的公式,该如何高效解决呢?其实可以借助一款强大的公式编 ...

  2. FL studio系列教程(一):什么是FL水果音乐制作软件

    如今,越来越多的音乐人选择使用音乐制作软件来进行音乐的创作,一台电脑.一款软件以及一个外接MIDI就是一个小型的音乐工作站.FL Studio成了音乐界萌新的首选,目前最新的版本为FL Studio2 ...

  3. [LGOJ1273]有线电视网

    solution 用了一个很有意思的转移方法. $dp[i][j] $ 表达 \(i\) 作为根,\(j\)个终端时最大的收益,即钱数,当\(0\leq dp[1][i]\)时,即以1为根可以转移到\ ...

  4. vue组建通信

    父组件 <template> <div> <zi :str="str" @change_fu="getzi"></zi ...

  5. 【刷题笔记】DP优化-状压

    因为篇幅太长翻着麻烦,计划把DP拆成几个小专题,这里原文只留下状压,其他请至后续博文. 状态压缩优化 所谓状态压缩,就是将原本需要很多很多维来描述,甚至暴力根本描述不清的状态压缩成一维来描述. 时间复 ...

  6. idea:如果String 跟System该怎么解决

    这个问题还是比较简单的,但有很多小白不知道,我也是刚刚才遇到查了一些资料才知道的 接下来这里就是需要配置你的SDK,所以请你点击右上角的图标,进行配置SDK jdk下载地址:https://www.o ...

  7. PyQt(Python+Qt)学习随笔:QMainWindow的tabifyDockWidget方法将QDockWidget两个停靠窗选项卡式排列

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 主窗口的tabifyDockWidget方法用于将主窗口的两个停靠窗口 ...

  8. 转:正则表达式的先行断言(lookahead)和后行断言(lookbehind)

    正则表达式的先行断言和后行断言一共有4种形式: (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion) (?!pattern) 零宽 ...

  9. Python基础篇学习感悟:学如不及,犹恐失之

    从2019年3月底开始学习Python,4月12日在CSDN发表第一篇博文,时至今日已有4个月零12天. 4个多月的学习,老猿从一个Python小白成长到今天,可以说对Python这门语言已经略知一二 ...

  10. 乌云1000个PHP代码审计案例(1)

    前两天发现的宝藏网站:https://php.mengsec.com/ 在github上面找到了源代码:https://github.com/Xyntax/1000php,可以在自己的服务器上面搭建 ...