JavaScript DOM 基础操作

本文详细介绍了JavaScript中DOM操作的基础,包括ID、类名和标签选择API,元素的创建、属性修改,以及事件监听和交互的实践示例。从选择DOM元素到添加自定义事件,让读者掌握核心DOM操作技巧。
摘要由CSDN通过智能技术生成

JavaScript DOM 基础操作

浏览器提供了一系列DOM API接口用于创建、选择、修改 DOM中的元素、处理DOM事件等等

元素选择API


示例dom

<body>
    <div id="container">
        <div class="card">内容</div>
        <span>行内</span>
        <span>行内2</span>
        <p class="red">段落</p>
        <p class="red">段落 2</p>
        <input type="text" />
        <a href="https://www.bilibili.com">bilibili</a>
    </div>
</body>

ID选择

document.getElementById('container')

返回这个ID的DOM元素

class选择

document.getElementsByClassName('red')

返回HTMLCollection类型的元素集合,可以认为是一个数组

HTMLCollection

标签名选择

document.getElementsByTagName('div')

同样返回HTMLCollection类型的元素集合

使用选择器

document.querySelector('#container')

通过制定选择器选择元素,并返回第一个匹配的元素,上例为 #,也可换为 .

document.querySelectorALL('.red')

返回NodeList类型的元素集合,可以认为是一个数组

NodeList

使用遍历树得属性获取相邻节点和子节点

使用 children获取所有元素子节点的 HTMLCOllection集合
const container = document.getElementById('container')
const children = container.children
使用nextElementSibiling获取紧邻当前元素的下一个元素
const container = document.getElementById('container')
const next = container.nextElementSibiling
使用previousElementSibiling获取紧邻当前元素的上一个元素
const container = document.getElementById('container')
const previous = container.previousElementSibiling

创建元素API

document对象提供了creatElement的API用于创建一个dom元素并返回,所有元素都提供了append用于追加子元素到最后

<div id="container"></div>
<script>
    //创建<p></p>元素
    const p = document.createElement('p');
    //追加子节点,文本
    p.append('Hello world');
    //选择#container div
    const container = document.querySelector('#container');
    //追加p元素到#container div
    container.append(p)
</script>

修改元素属性API

在创建或获取到元素之后,就可以用 . 来访问元素的属性了,也可以使用setAttributeremoveAttribute方法获取、修改和删除属性

<div id="container"></div>
<script>
    //创建<p></p>元素
    const p = document.createElement('p')
    //追加子节点,文本
    p.append('Hello world')
    //选择#container div
    const container = document.querySelector('#container');
    //追加p元素到#container div
    container.append(p)
    //修改p文本字体为红色,内间距改为20像素
    p.style = "color:red;padding:20px;"
</script>

事件交互API

在拿到dom元素后可以调用它的addEventListener来添加事件

addEventListener(eventName,listener)

-eventName:string 事件名字

-listener:function 事件处理回调函数(尽量不要用匿名箭头函数)

常用事件

事件名含义
click鼠标/屏幕点击
mouseenter/mouseleave鼠标进入/移出元素区域
drag/dragstart/dragend元素被拖拽/拖拽开始/拖拽结束
input<input><select><textarea>内容改变
focus/blur获取失去焦点
keydown/keyup键盘按下/松开
play/pause媒体(视频、音频)播放/暂停

添加事件

事件回调函数中的参数为event对象,包含了事件的一些信息,比如使用target触发事件的元素

const handleEvent = event => {
        event.target //触发事件的元素
    }

下面例子比如给按钮添加事件,点击弹窗

<button id="btn">点我</button>
<script>
    //选择按钮元素
    const btn = document.querySelector('#btn')
        //创建事件监听函数
    const btnClick = function(event) {
            console.log(btn === event.target) //true
            alert("Hello world")
        }
        //给按钮添加事件
    btn.addEventListener('click', btnClick)
</script>

还有两个不推荐使用

  • 给元素添加属性的方式添加事件

    btn.onclick = btnClick

    这种方式只能给一个元素添加一种事件处理函数,而使用addEventListener可以添加多个

  • 直接在Html中添加事件和处理

    <button id=“btn” οnclick=“alert (‘Hello world’)” )>点我< /button>

    这种会导致代码难以阅读维护和处理,不推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值