使用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浏览器测试。
