IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> javascript_basic04 -> 正文阅读

[JavaScript知识库]javascript_basic04

一、DOM的含义

1、DHTML

动态的HTML,是现有技术整合的一个统称,让网页在离线状态也能保存动态效果
?? ??? ?DHTML = HTML + CSS + JS

2、DOM


? ? ? ? 文档对象模型,专门用于操作文档(HTML和CSS)?
?

3、DOM树


? ?在HTML文档中,所有的元素、属性、文本、注释等都会被视为一个DOM节点/DOM对象/DOM元素

4、概念:其实树根是document对象


? ?在JS中,不需要我们去创建的,由浏览器的js解释器自动创建,且一个页面只有一个document
? ?作用:通过树根可以找到下面的任何一个DOM元素,还可以操作他

5、获取元素:类似css的选择器 - 必须先找到元素才能操作元素


? ?1、通过 HTML的特性 获取元素:
? ? (1)、ID获取:
?? ? ? 语法:var elem=document.getElementById("id值"); -- id是唯一
?? ? ? 在当前 DOM树中,根据元素的id,获取具体的dom节点
?? ? ? 返回:找到了,保存的就是对应的元素
? ? ? ? ? ? ? ? ? 没找到,返回的是一个null
?? ? ? 强调:输出来长得像一个标签的样子,才叫做DOM节点/DOM对象/DOM元素,才能去执行后续操作
?? ?
? ? (2)、标签名获取:
?? ? ? 语法:var elems=document/parent.getElementsByTagName("标签名");
?? ? ? 在当前 DOM树中,根据元素的标签名,获取了具体的dom集合(类数组集合)
?? ? ? 返回:找到了,返回的是一个类数组集合
? ? ? ? ? ? ? ? ? ?没找到,返回的是一个空集合[];
?? ? ? 强调:1、dom集合不允许直接做后续操作,会报错

? ? ? ? ? ? ? ? ? 解决:1、加下标获取到某一个 2、循环遍历获取到所有
? ? ? ? ? ? ? ? ? 2、parent代表的是你已经找到的某个父元素

? ? (3)、class名获取
?? ? ? 语法:var elems=document/parent.getElementsByClassName("class名");
?? ? ? 在当前 DOM树中,根据元素的class名,获取了具体的dom集合(类数组集合)
?? ? ? 返回:找到了,返回的是一个类数组集合
? ? ? ? ? ? ? ? ? 没找到,返回的是一个空集合[];
?? ? ? 强调:1、dom集合不允许直接做后续操作,会报错

? ? ? ? ? ? ? ? ? 解决:1、加下标拿到某一个 2、循环遍历拿所有
? ? ? ? ? ? ? ? 2、parent代表的是你已经找到的某个父元素


? 2、通过 元素之间的关系 获取元素:
?? ?使用的前提条件:至少要找到一个人才能动用关系

?? ?父元素:xx.parentNode; //单个元素
?? ?子元素:xx.children; //集合
?? ?第一个儿子:xx.firstElementChild; //单个元素
?? ?最后一个儿子:xx.lastElementChild; //单个元素
?? ?前一个兄弟:xx.previousElementSibling; //单个元素
?? ?后一个兄弟:xx.nextElementSibling; //单个元素
?? ?

?? ?强调:集合不能做操作,只有单个元素可以


6、操作元素

前提:1、至少要找到元素
?? ??? ? ? 2、页面上所有的东西数据类型都是一个字符串
? ?1、元素的内容
? ? ? ?1、innerHTML属性:
?? ??? ?语法:获取:elem.innerHTML; - 往往都是用来做判断的
? ? ? ? ? ? ? ? ? ?设置:elem.innerHTML="内容"; - 修改

? ? ? ?2、innerText属性:
?? ??? ?语法:获取:elem.innerText;
? ? ? ? ? ? ? ? ? 设置:elem.innerText="文本";

?? ?小总结:以上两个操作几乎相似,但是innerHTML才可以识别标签,innerText只能操作纯文本 -? ? ? ? ? ? ? ? ? ? 只有双标签可用
?
? ? ? ?3、value属性:专为单标签input准备的获取和设置内容
?? ??? ?语法:获取:input.value;
? ? ? ? ? ? ? ? ? 设置:input.value="值";

? ?2、元素的属性

? ? ?什么叫属性:<elem id class?src alt?href title style ></elem>
?? ?1、获取元素的属性值 - 往往都是用来做判断的
?? ??? ?elem.getAttribute("属性名");

?? ?2、设置元素的属性值 - 修改
?? ??? ?elem.setAttribute("属性名","属性值");

?? ?属性的简化版操作:
?? ??? ?1、获取元素的属性值:elem.属性名; - 往往都是用来做判断的
?? ??? ?2、设置元素的属性值:elem.属性名="属性值"; - 修改

?? ??? ?简化版小缺陷:1、class必须写为className
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、自定义属性不能操作,只能操作标准属性

? ?3、元素的样式
?? ?1、CSS定义的方式:
?? ??? ?1、内联样式 - JS要操作最好就要操作内联样式
?? ??? ?2、内部样式表
?? ??? ?3、外部样式表 - 一阶段最适合开发时使用

?? ?2、为什么JS要尽量的操作内联样式:
?? ??? ?1、优先级最高 - 写的JS的样式不至于别人给覆盖了
?? ??? ?2、牵一发而动全身 - 内联样式只会修改到当前元素

?? ?3、语法:
?? ??? ?获取:elem.style.css属性名; - 往往都是用来做判断的
?? ??? ?设置:elem.style.css属性名="css属性值"; - 修改
?? ??? ?特殊:1、css属性名写法不一样,把横线删掉换成驼峰命名法
?? ??? ??? ?CSS:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JS:
?? ??? ??? ?width? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?width
?? ??? ??? ?background-color? ? ? ? ? ? ? ? ? ? ? ? backgroundColor
?? ??? ??? ?border-top? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?borderTop
?? ??? ??? ?

7、新的绑定事件的操作:


?? ?HTML与JS分离

? ?elem.οnclick=function(){
?? ?写操作
?? ?特殊:事件中可以使用一个关键字 this
?? ??? ?1、单个元素绑定了事件 this->这是单个元素
?? ??? ?2、多个元素循环同时绑定了事件 this->当前触发事件的元素

?? ?建议:如果你在事件中想要使用到绑定事件的元素,推荐使用this
? ?}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:38:44  更:2021-08-16 11:39:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:04:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码