上一篇                     
               
			  如何快速获取HTML元素值
- 前端开发
- 2025-06-17
- 4901
 使用JavaScript通过DOM方法获取HTML元素的值:对于表单元素如input、select,使用
 
 
.value属性;对于普通元素如div、p,通过
 .textContent或
 .innerText获取文本内容,先通过
 getElementById()、
 querySelector()等方法定位元素再取值。
在网页开发中,获取HTML元素的值是常见需求,例如收集表单数据、动态更新内容或实现交互功能,以下是几种核心方法,均基于标准JavaScript(ES6+),兼容现代浏览器:
基础方法:通过ID获取元素值
<input type="text" id="username" value="示例文本">
<script>
  // 通过getElementById获取
  const inputElement = document.getElementById("username");
  console.log(inputElement.value); // 输出:示例文本
</script> 
原理:getElementById 直接定位唯一ID元素,.value 属性读取输入框、下拉框等表单元素的值,非表单元素(如<div>)需用.textContent或.innerHTML。

通用选择器:querySelector
<div class="price">¥199</div>
<script>
  // 通过CSS选择器获取首个匹配元素
  const priceDiv = document.querySelector(".price");
  console.log(priceDiv.textContent); // 输出:¥199
</script> 
适用场景:
- querySelector(".class")获取首个匹配类名的元素
- querySelector("#id")等效于- getElementById
- 获取非表单元素内容用.textContent(过滤HTML标签)或.innerHTML(保留标签)
批量获取元素值:querySelectorAll
<ul>
  <li class="item">苹果</li>
  <li class="item">香蕉</li>
</ul>
<script>
  // 获取所有类名为item的元素
  const items = document.querySelectorAll(".item");
  items.forEach(item => {
    console.log(item.textContent); // 依次输出:苹果、香蕉
  });
</script> 
注意:返回的是NodeList集合,需遍历操作,不可直接使用数组方法(可转换为数组:[...items])。

表单元素特殊处理
单选/复选框:
<input type="radio" name="gender" value="male" checked> 男
<input type="checkbox" name="hobby" value="reading" checked> 阅读
<script>
  // 单选按钮
  const radio = document.querySelector('input[name="gender"]:checked');
  console.log(radio.value); // 输出:male
  // 多选框
  const checkboxes = document.querySelectorAll('input[name="hobby"]:checked');
  checkboxes.forEach(cb => console.log(cb.value)); // 输出:reading
</script> 
下拉菜单:
<select id="city">
  <option value="bj">北京</option>
  <option value="sh" selected>上海</option>
</select>
<script>
  const select = document.getElementById("city");
  console.log(select.value); // 输出:sh
  console.log(select.options[select.selectedIndex].text); // 输出:上海
</script> 
注意事项
- DOM加载时机:脚本需在元素加载后执行,将<script>放在页面底部或使用DOMContentLoaded事件:document.addEventListener("DOMContentLoaded", () => { // 在此执行获取元素的代码 });
- 空值处理:检查元素是否存在: const element = document.getElementById("mayNotExist"); if (element) { console.log(element.value); } else { console.error("元素未找到!"); }
- 性能优化:频繁操作时,缓存查询结果避免重复查找: // 避免每次使用都查询DOM const cachedElement = document.querySelector("#header");
- 精确获取单一元素 → getElementById或querySelector
- 批量获取元素 → querySelectorAll
- 表单值 → .value
- 普通元素文本 → .textContent→ 确保DOM加载完成后操作
根据场景选择方法,优先使用标准JavaScript而非过时库(如jQuery),以提升性能和可维护性。
引用说明参考MDN Web文档(Mozilla Developer Network)的DOM操作指南,遵循W3C标准,MDN被公认为Web开发权威资源,所有代码示例均通过Chrome、Firefox、Edge浏览器测试。

 
  
			