除了常见的获取元素、操作元素和文档信息等方法外,`document`还有一些高级用法,可以更加灵活地操作和获取HTML元素和文档信息。以下是一些常见的高级用法:
## 操作文档结构
- `document.createElement(tagName)`:创建一个元素节点。
- `document.createTextNode(text)`:创建一个文本节点。
- `document.createAttribute(name)`:创建一个属性节点。
- `document.createComment(text)`:创建一个注释节点。
- `document.createDocumentFragment()`:创建一个文档片段。
- `element.insertBefore(newNode, referenceNode)`:在一个元素的子元素列表中,将一个新的子元素插入到一个参考元素的前面。
- `element.replaceChild(newNode, oldNode)`:替换一个元素的子元素。
- `element.cloneNode(deep)`:复制一个元素,如果`deep`为`true`,则同时复制其所有子元素。
## 其他方法
- `document.evaluate(expression, contextNode, namespaceResolver, resultType, result)`:在文档中执行一个XPath表达式。
- `document.importNode(node, deep)`:从另一个文档中导入一个节点。
- `document.querySelector(selector)`:查找并返回文档中与指定选择器组匹配的第一个元素。
- `document.querySelectorAll(selector)`:查找并返回文档中与指定选择器组匹配的所有元素。
- `document.defaultView.getComputedStyle(element, pseudoElement)`:获取一个元素的最终计算样式。
- `document.getSelection()`:获取当前文档中的用户选择内容。
需要注意的是,一些高级用法需要浏览器支持,并且使用时应谨慎,避免对性能和安全性产生影响。