js操作节点的方法有哪些?
JavaScript 提供了多种操作节点的方法,大致可以分为以下几类:
1. 获取节点:
getElementById(id): 通过 ID 获取单个元素,是最常用的方法之一。getElementsByTagName(tagName): 通过标签名获取元素集合,例如获取所有<p>元素。getElementsByClassName(className): 通过类名获取元素集合。querySelector(selectors): 根据 CSS 选择器获取第一个匹配的元素。功能强大且灵活。querySelectorAll(selectors): 根据 CSS 选择器获取所有匹配的元素集合。
2. 创建节点:
createElement(tagName): 创建一个指定类型的元素节点,例如createElement('div')创建一个<div>元素。createTextNode(text): 创建一个文本节点。
3. 添加节点:
appendChild(childNode): 将子节点添加到父节点的末尾。insertBefore(newNode, referenceNode): 将新节点插入到参考节点的前面。
4. 删除节点:
removeChild(childNode): 从父节点中删除指定的子节点。remove(): 节点自身调用,将自身从父节点中移除。 (较新的方法,兼容性需要注意)
5. 替换节点:
replaceChild(newChild, oldChild): 用新节点替换旧节点。
6. 修改节点:
- 修改节点属性: 可以直接访问和修改节点的属性,例如
element.id = 'newId',element.className = 'newClass',element.setAttribute('attributeName', 'attributeValue'),element.removeAttribute('attributeName')。 - 修改节点内容:
innerHTML: 获取或设置元素的 HTML 内容 (需要注意安全性,避免 XSS 攻击)。textContent: 获取或设置元素的纯文本内容,更安全。nodeValue(对于文本节点): 获取或设置文本节点的值。
7. 其他常用方法:
cloneNode(deep): 复制节点,deep为true时进行深度复制 (包括子节点),false时进行浅复制 (只复制节点本身)。parentNode: 获取父节点。childNodes: 获取子节点集合 (包括文本节点和元素节点)。children: 获取子元素集合 (只包含元素节点)。nextSibling: 获取下一个兄弟节点。previousSibling: 获取上一个兄弟节点。firstChild: 获取第一个子节点。lastChild: 获取最后一个子节点。contains(otherNode): 检查一个节点是否包含另一个节点。
示例:
// 获取节点
const myDiv = document.getElementById('myDiv');
const paragraphs = document.getElementsByTagName('p');
// 创建节点
const newParagraph = document.createElement('p');
const newText = document.createTextNode('This is a new paragraph.');
// 添加节点
newParagraph.appendChild(newText);
myDiv.appendChild(newParagraph);
// 删除节点
myDiv.removeChild(newParagraph);
// 修改节点内容
myDiv.innerHTML = '<p>New content</p>';
希望这些信息对您有所帮助! 请根据您的具体需求选择合适的方法。 记住要检查浏览器兼容性,特别是使用较新的 API 时。
浙公网安备 33010602011771号