JavaScript DOM属性
外观
JavaScript DOM属性[编辑 | 编辑源代码]
介绍[编辑 | 编辑源代码]
DOM属性(Document Object Model Properties)是JavaScript与HTML文档交互的核心机制之一,通过操作DOM元素的属性,开发者可以动态修改网页内容、样式和行为。DOM属性分为固有属性(如`id`、`className`)和自定义属性(如`data-*`)。本章将详细解析其分类、用法及实际应用。
属性分类[编辑 | 编辑源代码]
DOM属性可分为以下几类:
- 标准属性:HTML元素原生支持的属性(如`src`、`href`)。
- 自定义属性:以`data-`开头的属性(如`data-user-id`)。
- 样式属性:通过`style`对象访问的CSS属性(如`style.color`)。
- 特殊属性:如`innerHTML`、`textContent`等。
标准属性示例[编辑 | 编辑源代码]
以下代码演示如何获取和设置`<img>`的`src`属性:
// 获取属性
const img = document.getElementById('myImage');
console.log(img.src); // 输出: 完整URL路径
// 设置属性
img.src = 'new-image.jpg'; // 修改图片源
核心属性详解[编辑 | 编辑源代码]
1. innerHTML vs textContent[编辑 | 编辑源代码]
属性 | 描述 | 示例 |
---|---|---|
innerHTML |
解析HTML标签 | element.innerHTML = 'Hello'
|
textContent |
忽略HTML标签 | element.textContent = 'Hello'
|
const div = document.querySelector('div');
div.innerHTML = '<em>斜体文本</em>'; // 渲染为斜体
div.textContent = '<em>普通文本</em>'; // 输出原始字符串
2. 自定义属性(data-*)[编辑 | 编辑源代码]
HTML5允许通过dataset
访问自定义属性:
<div id="user" data-user-id="123" data-role="admin"></div>
const user = document.getElementById('user');
console.log(user.dataset.userId); // "123"
user.dataset.role = 'guest'; // 动态修改
样式属性操作[编辑 | 编辑源代码]
通过style
对象直接修改CSS:
const title = document.getElementById('title');
title.style.color = 'blue';
title.style.fontSize = '24px'; // 注意驼峰命名
实际案例:动态表单验证[编辑 | 编辑源代码]
以下代码利用DOM属性实现实时输入验证:
<input type="text" id="username" required minlength="3">
<p id="error" style="color: red;"></p>
const input = document.getElementById('username');
const error = document.getElementById('error');
input.addEventListener('input', () => {
if (input.value.length < 3) {
error.textContent = '用户名至少3个字符';
input.style.border = '2px solid red';
} else {
error.textContent = '';
input.style.border = '1px solid green';
}
});
属性访问方法对比[编辑 | 编辑源代码]
方法对比示例[编辑 | 编辑源代码]
const link = document.querySelector('a');
// 直接访问
console.log(link.href); // 完整URL
// getAttribute
console.log(link.getAttribute('href')); // 原始值
数学公式辅助说明[编辑 | 编辑源代码]
属性操作的时间复杂度通常为O(1),因为DOM使用哈希表存储属性:
总结[编辑 | 编辑源代码]
- DOM属性是动态网页开发的基础工具。
- 区分标准属性与自定义属性的使用场景。
- 优先使用
dataset
而非非标准自定义属性。 - 样式修改推荐使用
classList
而非直接操作style
。