.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浏览器测试。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/27654.html