You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

除querySelector、querySelectorAll外的DOM选择方法及该API用法咨询

一、其他可用的DOM元素选择方法

原生JS除了querySelector和querySelectorAll外,还有以下常用DOM选择方法:

  • getElementById:通过元素id属性匹配,返回唯一的DOM元素,要求页面内id唯一,调用方式为document.getElementById('目标id')
  • getElementsByClassName:通过元素class属性匹配,返回动态的HTMLCollection集合(DOM结构更新时集合内容会自动同步),也可在指定父元素下调用缩小选择范围,调用方式为document.getElementsByClassName('目标类名')
  • getElementsByTagName:通过元素标签名匹配,返回动态的HTMLCollection集合,调用方式为document.getElementsByTagName('目标标签名'),比如获取所有p标签可以写document.getElementsByTagName('p')
  • getElementsByName:通过元素的name属性匹配,多用于表单元素,返回NodeList集合,调用方式为document.getElementsByName('目标name属性值')
二、多段落点击交互实现方案

你需要遍历querySelectorAll返回的所有元素逐一绑定事件,同时通过事件对象获取当前点击的元素即可实现需求,完整代码如下:

<p>Player 1: Test 1</p> 
<p>Player 2: Test 2</p>

<script>
// 选中页面内所有p标签,返回静态NodeList集合
const allParas = document.querySelectorAll('p');
// 遍历每个p标签绑定点击事件
allParas.forEach(paraItem => {
  paraItem.addEventListener('click', updateName);
});

function updateName(event) {
  // event.target为当前被点击的p元素
  const clickedPara = event.target;
  const inputName = prompt('Enter your name');
  // 提取原有前缀,保证Player 1/2的标识不变
  const prefix = clickedPara.textContent.split(':')[0];
  clickedPara.textContent = `${prefix}: ${inputName}`;
}
</script>

如果不需要保留原来的Player 1/2前缀,直接修改赋值逻辑即可。

内容的提问来源于stack exchange,提问作者Idris Zaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:24:05