JavaScript DOM 基础操作

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>

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript事件是指在网页中发生的各种交互动作,比如点击、鼠标移动、键盘输入等。通过JavaScript可以为元素添加事件监听器,以便在事件发生时执行相应的操作。常见的JavaScript事件包括mouseover、mouseenter、load、blur、focus、change、input、invalid、select、submit、click等。\[1\]\[2\]\[3\] DOM操作是指通过JavaScript操作网页中的DOM元素,包括创建、修改、删除元素,修改元素的属性和样式等。通过JavaScript可以获取元素、修改元素的内容、样式、属性等。常见的DOM操作包括获取元素、修改元素的内容、样式、属性等。常见的DOM操作包括getElementById、innerText、innerHTML等。\[1\]\[2\]\[3\] 通过JavaScript事件和DOM操作,我们可以实现网页的交互功能,比如点击按钮弹出确认框、表单验证、动态修改网页内容等。 #### 引用[.reference_title] - *1* *3* [JavaScript基础: DOM操作中常用事件](https://blog.csdn.net/u011863822/article/details/124199744)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JavaScript DOM文档事件](https://blog.csdn.net/m0_67942533/article/details/126743405)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值