关于Dom

  • 1. DOM简介

  • 1.1 什么是DOM

  • 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口

  • W3C已经定理了一系列的DOM接口,通过这些DOM接口可以改变网页的内容、结构和样式

  • 1.2 DOM 树

  • 1. 文档:一个页面就是一个文档,DOM中使用document表示

  • 2. 元素:页面中的所有标签都是元素,DOM中使用element表示

  • 3. 节点:页面中的所有内容都是节点(标签、属性、文本、注释等),DOM中使用node表示

  • DOM把以上所有内容都看作是对象

  • 2. 获取元素

  • 2.1 如何获取页面元素

  • 1. 根据ID获取

  • 1. 使用getElementById() 方法可以获取带有ID 的元素对象

  • 2. 因为文档页面从上往下加载,所以得先有标签,因此script要写到目标标签的下面

  • 3. get 获得 element 元素 by 通过 驼峰命名法

  • 4. 返回的是一个元素对象

  • 5. console.dir(); 打印返回的元素对象 更好的查看里面的属性和方法

  • 6. 参数 id 是大小写敏感的字符串

  • 示例

  • <div id="time">2019-9-9</div>

  • <script>

  • var timer = document.getElementById('time');

  • console.log(tiemr);

  • console.log(typeof timer);

  • console.dir(timer);

  • </script>

  • 2. 根据标签名获取

  • 1. document.getElementsByTagName(' '); 方法可以返回带有指定标签名的对象的集合

  • 2. element.getElementsByTagName('标签名');

  • 作用:获取某个元素(父元素element)内部所有指定标签名的子元素;

  • 注意:父元素必须是单个对象(必须指明是哪一个元素对象),获取的时候不包括父元素自己

  • 3. 返回的是 获取过来元素对象的集合 以伪数组的形式存储的

  • 4. 我们想要依次打印里面的元素对象 可以采取遍历的方式

  • for(var i = 0;i < lis.length;i++) {
    console.log(lis[i]);
    }

  • 5. 如果页面中只有一个目标标签 返回的还是伪数组的形式

  • 6. 如果页面中根本没有目标标签 则返回的是空的伪数组

  • 3. 通过HTML5新增的方法获取

  • 1. document.getElementsByClassName(' '); 根据类名获得某些元素集合

  • 2. document.querySelector(' '); 返回指定选择器的第一个元素对象

  • 单引号里面可以放以下内容:.类名、#ID名、标签名 (注意符号)

  • 3. document.querySelectorAll(' '); 返回指定选择器的所有元素对象集合

  • 单引号里可以放以下内容:.类名、#ID名、标签名(标签符号)

  • 注意:2和3的兼容性更好 所有更推荐用2和3的方式

  • 4. 特殊元素获取

  • 1. 获取body 元素

  • var bodyEle = document.body;

  • 返回的是元素对象

  • 2. 获取html 元素

  • var htmlEle = document.documentElement;

  • 3. 事件基础

  • 3.1 事件概述

  • 1. 定义:JavaScript使我们有能力创建动态页面,而事件是可以被JS侦测到的行为

  • 简单理解:触发---响应机制

  • 网页中的每个元素都可以产生某些可以触发JS的事件,例如,我们可以在用户点击某按钮时产生一个事件,然后去执行某些操作

  • 2. 事件是由三部分组成:事件源、事件类型、事件处理程序。 也成为事件三要素

  • 1.1 事件源 事件被触发的对象 即按钮

  • var btn = document.getElementById('btn');

  • 1.2 事件类型 如何触发 什么事件 比如鼠标点击(onclick) 还是鼠标经过 还是键盘按下

  • onclick 鼠标点击左键

  • onmouseover 鼠标经过触发

  • onmouseout 鼠标离开触发

  • onfocus 获得鼠标焦点触发

  • onblur 获得鼠标焦点触发

  • onmousemove 鼠标移动出发

  • onmouseup 鼠标弹起触发

  • onmousedown 鼠标按下触发

  • 1.3 事件处理程序 通过一个函数赋值的方式 完成

  • 1.4 示例:

  • <button id="btn">唐伯虎</button>

  • <script>

  • var btn = document.getElementById('btn');

  • btn.onclick = function() {

  • alert('点秋香');

  • }

  • </script>

  • 3. 执行事件的步骤

  • 1. 获取事件源

  • 2. 注册时间(绑定事件)

  • 3. 添加事件处理程序(采取函数符号形式)

  • 4. 示例:

  • <button>显示当前系统时间</button>

  • <div>某个时间</div>

  • <script>

  • var btn = document.querySelector('button');

  • var div = document.querySelector('div');

  • btn.onclick = function() {

  • div.innerText = '2019-6-6';

  • }

  • </script>

  • 4. 操作元素

  • 1. 定义:JS的DOM操作可以改变网页内容、结构和样式,我们可以利用DOM操作元素来改变元素里面的内容、属性等。注意以下都是属性

  • 2. 改变元素内容(innerHTML是W3C推荐的,也是使用最多的)

  • 2.1 element.innerText

  • 2.2 element.innerHTML

  • 2.3 innerText和innerHTML的区别:

  • innerText不识别HTML标签,并且会把HTML标签显示出来

  • innerHTML识别HTML标签

  • 两者都是可读写的,但读写出的内容有所区别:

  • innerText 读写从起始位置到终止位置的内容,但它会去除html标签,同时空格和换行也会去掉

  • innerHTML 读写从起始位置到终止位置的全部内容,包括html标签,同时保留空格和换行

  • 3. 常用元素的属性操作

  • 3.1 innerText、innerHTML 改变元素内容

  • 3.2 src、href

  • 3.3 id、alt、title

  • 3.4 示例:

  • <button id="ldh">刘德华</button>

  • <button id="zxy">张学友</button><br>

  • <img src="images/ldh.jpg" alt="" title="刘德华">

  • <script>

  • var ldh = document.getElementById('ldh');

  • var zxy = document.getElementById('zxy');

  • var img = document.querySelector('img');

  • zxy.onclikc = function() {

  • img.src = 'images/zxy.jpg';

  • img.title = '张学友';

  • }

  • ldh.onclick = function() {

  • img.src = 'images/ldh.jpg';

  • img.title = '刘德华';

  • }

  • 4. 表单元素的属性操作

  • 4.1 利用DOM可以操作如下表单元素的属性:type、value、checked、selected、disabled

  • 1. value 示例:修改表单内容

  • <button>按钮</button>

  • <input type="text" value="输入内容">

  • <script>

  • var btn = document.querySelector('button');

  • var input = document.querySelector('input');

  • btn.onclick = function() {

  • input.value = '被点击了';

  • }

  • </script>

  • 2. disabled 示例: 使某个表单被禁用 不能再点击

  • <button>按钮</button>

  • <input type="text" value="输入内容">

  • <script>

  • var btn = document.querySelector('button');

  • var input = document.querySelector('input');

  • btn.onclick = function() {

  • btn.disabled = true;

  • this.disabled = true; //this 指向的使时间函数的调用者 btn

  • //以上两句作用一样,写其一即可

  • }

  • </script>

  • 5. 样式属性操作

  • 可以通过JS修改元素的大小、颜色、位置等样式

  • 1. element.style 行内样式操作 (适用情况:样式比较少 或者 功能简单)

  • 1.1 注意:JS修改的样式的优先级是高于原来CSS样式的,所以页面F12的源码中显示的也是JS中的style样式

  • 2. element.className 类名样式操作 (适合条件:样式较多或者功能复杂的情况;)

  • 注意:className 会直接更改元素的类名,会覆盖原先的类名,如果想要保留原先的类名,我们可以这么做 多类名选择器(this.className = 'first change'; 原先类名first放在前面 更改的类名change放在后面)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值