目录

JavaScript-HTML-DOM-文档详解

JavaScript HTML DOM 文档详解

什么是HTML DOM文档对象?

HTML DOM(文档对象模型)文档对象是网页中所有其他对象的拥有者。它代表了整个网页,是访问和操作HTML元素的起点。当浏览器加载HTML页面时,会创建一个document对象,包含页面上所有的元素。

为什么需要DOM文档对象?

  • 提供访问和修改网页内容的接口
  • 允许动态更新页面内容
  • 实现用户交互功能
  • 使网页从静态变为动态

1,查找HTML元素

1)getElementById()
通过元素的id属性查找元素,返回单个元素:

<div id="header">网站标题</div>
<script>
const headerElement = document.getElementById('header');
headerElement.style.color = "blue";
</script>

2)getElementsByTagName()
通过标签名查找元素,返回元素集合:

<ul>
  <li>项目1</li>
  <li>项目2</li>
</ul>
<script>
const listItems = document.getElementsByTagName("li");
for (let i = 0; i < listItems.length; i++) {
  listItems[i].style.fontWeight = "bold";
}
</script>

3)getElementsByClassName()
通过类名查找元素,返回元素集合:

<p class="highlight">重要内容1</p>
<p class="highlight">重要内容2</p>
<script>
const highlights = document.getElementsByClassName("highlight");
for (let element of highlights) {
  element.style.backgroundColor = "yellow";
}
</script>

2,改变HTML元素

1)修改元素内容

document.getElementById("demo").innerHTML = "新内容";

2)修改元素属性

// 方法1:直接设置属性
document.getElementById("myImage").src = "new-image.jpg";

// 方法2:使用setAttribute
document.getElementById("myLink").setAttribute("href", "https://new-url.com");

3)修改元素样式

const element = document.getElementById("myElement");
element.style.color = "red";
element.style.fontSize = "20px";
element.style.marginTop = "10px";

3,添加和删除元素

1)创建新元素

const newDiv = document.createElement("div");
newDiv.innerHTML = "<p>这是新创建的元素</p>";

2)添加元素

// 添加到父元素末尾
document.body.appendChild(newDiv);

// 添加到特定位置
const parent = document.getElementById("container");
const referenceElement = document.getElementById("item2");
parent.insertBefore(newDiv, referenceElement);

3)删除元素

const elementToRemove = document.getElementById("oldElement");
elementToRemove.parentNode.removeChild(elementToRemove);

4,添加事件处理程序

<button id="myButton">点击我</button>
<script>
document.getElementById("myButton").onclick = function() {
  alert("按钮被点击了!");//弹窗模式
  this.style.backgroundColor = "green";//点击之后变绿色
};
</script>

5,常用HTML文档属性

// 获取文档标题
console.log(document.title); 

// 获取文档URL
console.log(document.URL);

// 获取所有表单
const forms = document.forms;
console.log(forms.length);

// 获取所有图片
const images = document.images;
console.log(images.length);

// 获取文档最后修改时间
console.log(document.lastModified);

6,完整示例:动态任务列表

<!DOCTYPE html>
<html>
<head>
  <title>DOM操作示例</title>
  <style>
    body { font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; }
    .task-list { list-style: none; padding: 0; }
    .task-item { background: #f5f5f5; padding: 10px; margin: 5px 0; border-radius: 4px; }
    .completed { text-decoration: line-through; color: #888; }
    .btn { background: #4CAF50; color: white; border: none; padding: 8px 16px; cursor: pointer; }
    .btn:hover { background: #45a049; }
  </style>
</head>
<body>
  <h1>任务列表</h1>
  
  <div>
    <input type="text" id="newTask" placeholder="输入新任务">
    <button class="btn" onclick="addTask()">添加任务</button>
  </div>
  
  <ul id="taskList" class="task-list"></ul>
  
  <script>
    // 添加新任务
    function addTask() {
      const input = document.getElementById("newTask");
      const taskText = input.value.trim();
      
      if (taskText) {
        const taskList = document.getElementById("taskList");
        const newTask = document.createElement("li");
        newTask.className = "task-item";
        newTask.innerHTML = `
          ${taskText}
          <button class="btn" onclick="completeTask(this)">完成</button>
          <button class="btn" onclick="removeTask(this)" style="background:#f44336">删除</button>
        `;
        taskList.appendChild(newTask);
        input.value = "";
      }
    }
    
    // 标记任务为完成
    function completeTask(button) {
      const taskItem = button.parentElement;
      taskItem.classList.add("completed");
      button.disabled = true;
    }
    
    // 删除任务
    function removeTask(button) {
      const taskItem = button.parentElement;
      taskItem.remove();
    }
  </script>
</body>
</html>

总结

HTML DOM文档对象是JavaScript操作网页的核心接口。通过它,可以:

  • 查找页面中的任何元素
  • 修改元素内容、属性和样式
  • 动态添加或删除元素
  • 响应用户交互事件

掌握DOM操作是前端开发的基础,能够创建动态、交互式的网页应用。