JavaScript的文档对象模型(DOM)是一个跨平台和语言独立的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。DOM将一个HTML或XML文档表现为一个树状结构,其中每个节点都是一个对象,代表文档中的一部分。
// 访问id为"myDiv"的元素
const myDiv = document.getElementById('myDiv');
// 访问所有的<p>元素
const paragraphs = document.getElementsByTagName('p');
// 访问所有class为"myClass"的元素
const myClassElements = document.getElementsByClassName('myClass');
// 使用CSS选择器访问元素
const myElement = document.querySelector('.myClass');
const myElements = document.querySelectorAll('.myClass');
// 修改元素内容
const myDiv = document.getElementById('myDiv');
myDiv.textContent = 'Hello, World!'; // 设置文本内容
myDiv.innerHTML = '<strong>Hello, World!</strong>'; // 设置HTML内容
// 修改元素属性
const myImage = document.getElementById('myImage');
myImage.src = 'newImage.png';
myImage.alt = 'A new image';
// 创建一个新的<p>元素
const newParagraph = document.createElement('p');
newParagraph.textContent = 'This is a new paragraph.';
// 将新元素添加到DOM中
myDiv.appendChild(newParagraph);
// 移除元素
const oldParagraph = document.getElementById('oldParagraph');
myDiv.removeChild(oldParagraph);
// 添加一个点击事件监听器到按钮上
const myButton = document.getElementById('myButton');
myButton.addEventListener('click', function(event) {
alert('Button was clicked!');
});
// 修改元素的样式
const myDiv = document.getElementById('myDiv');
myDiv.style.color = 'blue';
myDiv.style.backgroundColor = 'yellow';
// 添加和移除CSS类
myDiv.classList.add('my-new-class');
myDiv.classList.remove('my-old-class');
// 获取元素的子元素
const children = myDiv.children;
// 遍历子元素
for (const child of children) {
console.log(child.id);
}
// 添加新行到表格
const myTable = document.getElementById('myTable');
const newRow = myTable.insertRow(-1); // -1 表示在末尾添加
// 添加单元格到新行
const newCell = newRow.insertCell(0);
newCell.textContent = 'New cell';
// 获取表单输入值
const myForm = document.getElementById('myForm');
const inputValue = myForm.querySelector('input').value;
// 设置输入值
myForm.querySelector('input').value = 'New Value';
// 获取父元素
const parent = myDiv.parentNode;
// 获取相邻的兄弟元素
const nextSibling = myDiv.nextElementSibling;
const previousSibling = myDiv.previousElementSibling;
DOM操作对于XML文档同样适用,因为DOM是与语言和平台无关的。所以,如果你有一个XML文档,你可以使用相同的DOM API来操作它。
// 解析XML字符串
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, 'text/xml');
// 访问XML元素
const title = xmlDoc.getElementsByTagName('title')[0].textContent;
JavaScript DOM为开发者提供了一个强大的接口来动态地交互和控制web页面。通过这些接口,