在前端开发中,动态操作 DOM(文档对象模型)是 JavaScript 的核心功能之一。有很多方法可以实现,以下是一些常见示例,涵盖了创建、修改、删除和查找节点等操作:
1. 创建元素:
document.createElement(tagName)
: 创建一个指定标签名的 HTML 元素。例如,document.createElement('div')
创建一个 div 元素。document.createTextNode(text)
: 创建一个文本节点。例如,document.createTextNode('Hello World')
创建一个包含 "Hello World" 文本的节点。
2. 插入元素:
parentNode.appendChild(childNode)
: 将子节点添加到父节点的子节点列表末尾。parentNode.insertBefore(newNode, referenceNode)
: 将新节点插入到父节点的子节点列表中,位于参考节点之前。parentElement.insertAdjacentHTML(position, text)
: 将 HTML 字符串解析为节点并插入到父元素的指定位置。position
可以是 'beforebegin'、'afterbegin'、'beforeend' 或 'afterend'。parentElement.insertAdjacentElement(position, element)
: 将元素插入到父元素的指定位置。position
同上。parentElement.replaceChild(newChild, oldChild)
: 将旧子节点替换为新子节点。
3. 修改元素:
element.innerHTML = htmlString
: 设置元素的 HTML 内容。要注意潜在的 XSS 漏洞,如果htmlString
来自用户输入,需要进行适当的转义。element.textContent = text
: 设置元素的文本内容,会自动转义 HTML 字符,更安全。element.setAttribute(name, value)
: 设置元素的属性。例如,element.setAttribute('class', 'active')
。element.removeAttribute(name)
: 移除元素的属性。element.style.property = value
: 修改元素的样式。例如,element.style.color = 'red'
。 可以直接操作style属性来动态修改内联样式。
4. 删除元素:
parentNode.removeChild(childNode)
: 从父节点中移除子节点。
5. 查找元素:
document.getElementById(id)
: 通过 ID 查找元素。document.getElementsByTagName(tagName)
: 通过标签名查找元素,返回一个 HTMLCollection。document.getElementsByClassName(className)
: 通过类名查找元素,返回一个 HTMLCollection。document.querySelector(selectors)
: 使用 CSS 选择器查找第一个匹配的元素。document.querySelectorAll(selectors)
: 使用 CSS 选择器查找所有匹配的元素,返回一个 NodeList。
示例:动态创建一个列表项并添加到列表中
const list = document.getElementById('myList'); // 获取列表元素
const newItem = document.createElement('li'); // 创建一个新的列表项
newItem.textContent = 'New Item'; // 设置列表项的文本内容
list.appendChild(newItem); // 将新的列表项添加到列表中
更高级的 DOM 操作库:
除了原生 DOM API,还可以使用一些 JavaScript 库来简化 DOM 操作,例如 jQuery、Zepto.js 等。这些库提供了更简洁的 API 和更好的跨浏览器兼容性。
希望这些例子能帮助你理解如何动态操作 DOM。 选择哪种方法取决于你的具体需求。 记住,频繁的 DOM 操作可能会影响性能,因此在处理大量数据时,需要考虑性能优化策略。
标签:DOM,哪些,元素,element,列表,document,节点,举例说明 From: https://www.cnblogs.com/ai888/p/18569716