DOM(上)

DOM(上)

主要学习页面交互功能

简介

API 和Web API

API

是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简单理解:API是给程序员提供的一种工具,以便能更轻松的实现想要完成的功能。

Web API

Web API 是浏览器提供的一套操作浏览器功能和页面元素的API(BOM 和 DOM)

DOM

简介

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

DOM树

  • 文档:一个页面就是一个文档,DOM中使用document表示
  • 元素:页面中的所有标签都是元素,DOM中使用element表示
  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM中使用node表示

获取元素

DOM在我们实际开发中主要用来操作元素

获取页面中的元素可以使用一下几种方式:

  • 根据ID获取
  • 根据标签名获取
  • 通过HTML5新增的方法获取
  • 特殊元素获取

getElementById获取元素

<body>
    <div id="time">2021-4-22</div>
	<script>
        var timer = document.getElementById('time');
		console.log('timer');                 //返回的是一个元素对象
		console.log('typeof timer');          //object
		console.dir('timer');                 //打印我们返回的元素对象 更好的查看里面的属性和方法
	</script>
</body>

getElementsByTagName获取元素

使用getElementsByTagName()方法可以返回带有指定标签名的对象的集合

<ul>
    <li>知否知否</li>
	<li>知否知否</li>
	<li>知否知否</li>
</ul>
<script>
    //返回的是 获取过来元素对象的集合 以伪数组的形式存储的
    var lis = document.getElementsByTagName('li');
	console.log(lis);

注意

  • 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历
  • 得到的元素是动态的
  • 如果页面中只有一个li 返回的还是伪数组的形式
  • 如果页面中没有这个元素,返回的是空的伪数组
  • element.getElementsByTagName(‘标签名’);
  • 父元素必须是指定的单个元素

通过HTML5新增的方法获取

document.getElementsByClassName('类名'); //根据类名返回元素对象集合

document.querySelector('选择器'); //根据指定选择器返回第一个元素对象

document.querySelectorAll('选择器'); //根据指定选择器返回

<body>
    <div class="box">盒子1</div>
    <div class="box">盒子1</div>
	
	<script>
        var boxs = document.getElementsByClassName('box');
		console.log(boxs);
		
		var firstBox = document.querySelctor('.box');
		console.log(firstBox);

		var allBox = document.querySelectorAll('.box');
		console.log(allBox);
	</script>
</body>

获取特殊元素

  1. 获取body 元素
var bodyEle = document.body;
console.log(bodyEle);
console.dir(bodyEle);
  1. 获取html元素
var htmlEle = document.documentElement;
console.log(htmlEle);

事件基础

简单理解 :触发— 响应机制

事件三要素

事件源 事件类型 事件处理程序

  1. 事件源

事件被触发的对象 按钮

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

  1. 事件类型

如何触发 比如鼠标点击(onclick) 鼠标经过 键盘按下

  1. 事件处理程序

通过一个函数赋值的方式完成

var btn = document.getElementById('btn'); 
btn.onclick = function(){
    alert('点秋香');
}
执行事件的步骤
  1. 获取事件源

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

  1. 注册事件

  2. 添加事件处理程序

div.onclick = function(){
    console.log('我被选中了');
}

操作元素

操作元素内容

element.innerText

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

element.innerHTML

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

<div></div>
<script>
    var div = document.querySelector('div');
	div.innerText = '今天是: 2021';

	div.innerHTML = '今天是: 2021'
</script>


区别

innerText 不识别html标签 非标准 去除空格和换行

innerHTML 识别html标签 标准 W3C标准 保留空格和换行

这两个属性是可读写的,可以获取元素里面的内容

修改表单属性
<body>
    <button>按钮</button>
    <input type="text" value="输入内容">
        
    <script>
        var btn = document.querySelector('button');
        var input = document.querySelector('input');

        btn.onclick = function(){
            input.value = '被点击了';
            this.disabled = true;
        }
    </script>

</body>
修改样式属性

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

element.style //行内样式操作

element.classsName // 类名样式操作

注意

  1. JS里面的样式采取驼峰命名法,比如fontSize、backgroundColor
  2. JS修改style样式操作,产生的是行内样式,css权重比较高
使用className更改元素样式

使用element.style 获得修改元素样式, 如果样式比较少 或者 功能简单的情况下使用

我们可以使用element.classsName 修改元素的className更改元素的样式 适合于样式较多或者功能复杂的情况

className 会直接更改元素的类名,会覆盖原先的类名

如果想要保留原先的类名,我们可以这么做,多类名选择器

this.className = 'first change'; //原先类名为first 添加一个change类

自定义属性的操作

获取属性值

  • lelement.属性 获取属性值。

  • lelement.getAttribute(‘属性’);

区别

  • lelement.属性 获取内置属性值(元素本身自带的属性)

  • lelement.getAttribute(‘属性’); 主要获得自定义的属性 (标准) 我们程序员自定义的属性

设置属性值

  • lelement.属性 = ‘值’ 设置内置属性值。

  • lelement.setAttribute(‘属性’, ‘值’);

区别

  • lelement.属性 设置内置属性值

  • lelement.setAttribute(‘属性’); 主要设置自定义的属性 (标准)

移除属性

element.removeAttribute('属性');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值