js dom操作api集合

2024-07-20 14:41:16 211
详细描述JavaScript DOM 操作 API

选择 DOM 节点

方法参数描述示例代码
document.getElementById(id)id (字符串)返回带有指定 ID 的元素const element = document.getElementById('myElement');
document.getElementsByClassName(className)className (字符串)返回带有指定类名的元素集合const elements = document.getElementsByClassName('myClass');
document.getElementsByTagName(tagName)tagName (字符串)返回带有指定标签名的元素集合const elements = document.getElementsByTagName('div');
document.querySelector(selectors)selectors (字符串)返回匹配指定 CSS 选择器的第一个元素const element = document.querySelector('.myClass');
document.querySelectorAll(selectors)selectors (字符串)返回匹配指定 CSS 选择器的所有元素const elements = document.querySelectorAll('.myClass');

操作 DOM 内容

方法参数描述示例代码
element.innerHTMLhtml (字符串)获取或设置元素的 HTML 内容element.innerHTML = '<p>New content</p>';
element.textContenttext (字符串)获取或设置元素的文本内容element.textContent = 'New text content';

操作 DOM 属性

方法参数描述示例代码
element.setAttribute(name, value)name (字符串), value (字符串)设置元素的属性element.setAttribute('class', 'newClass');
element.getAttribute(name)name (字符串)获取元素的属性值const className = element.getAttribute('class');
element.removeAttribute(name)name (字符串)移除元素的属性element.removeAttribute('class');

操作 DOM 结构

方法参数描述示例代码
document.createElement(tagName)tagName (字符串)创建一个新的元素const newElement = document.createElement('div');
element.appendChild(child)child (Node)向元素的子节点列表的末尾添加新的子节点element.appendChild(newElement);
element.insertBefore(newNode, referenceNode)newNode (Node), referenceNode (Node)在某个子节点前面插入新的子节点parent.insertBefore(newChild, existingChild);
element.removeChild(child)child (Node)从子节点列表中移除一个子节点parent.removeChild(existingChild);
element.replaceChild(newNode, oldNode)newNode (Node), oldNode (Node)用一个新的子节点替换一个旧的子节点parent.replaceChild(newChild, existingChild);

操作 DOM 样式

方法参数描述示例代码
element.style.propertyNamepropertyName (字符串), value (字符串)获取或设置元素的样式属性element.style.color = 'red';
element.classList.add(className)className (字符串)向元素添加一个或多个类element.classList.add('newClass');
element.classList.remove(className)className (字符串)从元素中移除一个或多个类element.classList.remove('oldClass');
element.classList.toggle(className, force)className (字符串), force (布尔值, 可选)切换元素中的类。如果类存在,则移除它;如果类不存在,则添加它。element.classList.toggle('active');

操作 DOM 事件

方法参数描述示例代码
element.addEventListener(type, listener, options)type (字符串), listener (函数), options (对象, 可选)向元素添加事件监听器element.addEventListener('click', function() { alert('Element clicked!'); });
element.removeEventListener(type, listener, options)type (字符串), listener (函数), options (对象, 可选)移除元素的事件监听器element.removeEventListener('click', handleClick);

示例代码

以下是一个综合使用多种 DOM 操作 API 的示例:

HTML:

<div id="container">
  <p class="text">This is a paragraph.</p>
  <p class="text">This is another paragraph.</p>
</div>

JavaScript:

// 选择元素
const container = document.getElementById('container');
const paragraphs = document.querySelectorAll('.text');

// 创建新元素
const newParagraph = document.createElement('p');
newParagraph.textContent = 'This is a new paragraph.';

// 添加新元素
container.appendChild(newParagraph);

// 修改样式
newParagraph.style.color = 'blue';

// 添加类
newParagraph.classList.add('newClass');

// 添加事件监听器
newParagraph.addEventListener('click', function() {
  alert('New paragraph clicked!');
});

// 插入新元素
const anotherParagraph = document.createElement('p');
anotherParagraph.textContent = 'This is another new paragraph.';
container.insertBefore(anotherParagraph, newParagraph);

// 替换元素
const replacementParagraph = document.createElement('p');
replacementParagraph.textContent = 'This paragraph replaced the new paragraph.';
container.replaceChild(replacementParagraph, newParagraph);

// 移除元素
container.removeChild(anotherParagraph);

通过这些 API,你可以全面地操作和控制 DOM,动态地更新网页内容和结构。