全部学科
Python全栈
python
NodeJS全栈
nodejs

JSDOM操作与事件专题测试

18 题 40 分钟 难度:★★

考察知识点

  • DOM选择器:querySelector、querySelectorAll、getElementById、getElementsByClassName 等选择器方法的使用与区别
  • DOM节点操作:createElement、appendChild、insertBefore、removeChild、cloneNode 等节点操作方法
  • DOM样式操作:style 属性、className、classList、getComputedStyle 等样式操作方式
  • 事件监听:addEventListener、removeEventListener、事件监听器配置(capture、once、passive)
  • 事件对象:target、currentTarget、preventDefault、stopPropagation 等事件对象属性与方法
  • 事件冒泡与捕获:事件传播三阶段、阻止冒泡、捕获阶段监听
  • 事件委托:事件委托原理、适用场景、target 判断方式
  • 常见事件类型:click、input、change、keydown、keyup、focus、blur、submit、DOMContentLoaded 等
💡 参考答案在文末
判断题
1

element.remove() 方法可以直接将元素从 DOM 中移除,不需要通过父元素操作。

A

B

2

所有 DOM 事件都会经历捕获和冒泡两个阶段。

A

B

3

keydown 事件在按键被按下时触发,keyup 事件在按键被释放时触发。

A

B

4

element.classList.add('new-class') 会为元素添加一个新类名,不会覆盖已有的类名。

A

B

单选题
5

要通过 JavaScript 设置元素的内联样式 color 为 red,正确的写法是?

A

element.style.color = 'red'

B

element.color = 'red'

C

element.styles.color = 'red'

D

element.setAttribute('color', 'red')

6

document.querySelectorAll('div.box') 返回的结果类型是什么?

A

HTMLElement

B

HTMLCollection

C

NodeList

D

Array

7

以下哪个事件在用户修改输入框内容时实时触发?

A

change

B

input

C

submit

D

focus

8

DOM 事件传播的三个阶段顺序是?

A

冒泡阶段 → 目标阶段 → 捕获阶段

B

捕获阶段 → 目标阶段 → 冒泡阶段

C

目标阶段 → 捕获阶段 → 冒泡阶段

D

捕获阶段 → 冒泡阶段 → 目标阶段

9

以下哪个方法可以获取页面中第一个 class 为 "active" 的元素?

A

document.getElementsByClassName('active')

B

document.querySelector('.active')

C

document.querySelectorAll('.active')

D

document.getElementById('active')

10

要将一个新创建的元素 node 添加到父元素 parent 的末尾,应该使用哪个方法?

A

parent.insertBefore(node)

B

parent.appendChild(node)

C

parent.prepend(node)

D

parent.addNode(node)

11

以下哪个方法用于创建一个新的 DOM 元素节点?

A

document.createElement()

B

document.appendChild()

C

document.cloneNode()

D

document.createTextNode()

12

以下哪种方式可以为按钮添加 click 事件监听器?

A

button.onClick = handleClick

B

button.addEventListener('click', handleClick)

C

button.addEvent('click', handleClick)

D

button.click = handleClick

多选题
13

使用事件委托时,以下哪些方式可以判断触发事件的子元素?

A

event.target.tagName

B

event.target.classList.contains()

C

event.target.matches('selector')

D

event.currentTarget

14

以下哪些事件不适合使用事件委托?

A

click

B

focus

C

blur

D

mouseover

15

以下哪些事件属于表单相关事件?

A

submit

B

reset

C

focus

D

blur

填空题
16

键盘事件对象中,用于获取按下按键的字符编码的属性是 ____________,用于获取按键名称(如 "Enter"、"Escape")的属性是 ____________

17

要获取元素的父元素,使用 ____________ 属性;要获取元素的所有子元素节点,使用 ____________ 属性。

18

事件冒泡的传播方向是从 ________________________ 传播,直到到达 ____________ 或 window 对象。

参考答案
1.正确 2.错误 3.正确 4.正确 5.A 6.C 7.B 8.B 9.B 10.B 11.A 12.addEventListener 是标准的事件监听方法,第一个参数是事件类型(不带 on),第二个参数是事件处理函数。onclick(小写)是传统的事件属性绑定方式。 13.A;B;C 14.B;C 15.A;B;C;D 16.event.keyCode;event.key 17.element.parentNode;element.children 18.子元素;父元素;document
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
下一套试卷 → JS中级技能认证
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码