[DOM] - 2 文档对象模型 (DOM) - 方法

92 阅读2分钟

上一篇文章描述了DOM的属性 [DOM] - 1 文档对象模型 (DOM) - 属性状态 - 掘金 (juejin.cn)

下面接着看DOM的方法

append()

append(param1)
append(param1, param2)
append(param1, param2, /* … ,*/ paramN)

open()、write()、writeln()、close()

  • open()
    • Document.open()  方法打开一个要写入的文档。
    • 文档中的所有节点会被清除
    • 所有事件监听器会被清除
  • write()、writeln()
    • 一个包含要写入文档的文本的字符串。
    • 向文档中写入一串文本,并紧跟着一个换行符。
  • close()

createAttribute()

document.createAttribute(name) - 创建属性名为name的 Attr 节点

var node = document.getElementById("div1");
var a = document.createAttribute("my_attrib");
a.value = "newVal";
node.setAttributeNode(a);
console.log(node.getAttribute("my_attrib")); // "newVal"

HTMLElement 可以通过 getAttribute(attrName)获取自身 attrName 属性值;setAttributeNode(attrName) 添加属性到HTMLElement

createElement()、createDocumentFragment()

createElement - 创建一个Element 元素

createDocumentFragment - 创建一个内存里面的doc

createElement和createDocumentFragment的区别在于Fragment,createDocumentFragment在插入doc时,是不会把根节点插入,而且直接一次性插入所有子节点

参考:createElement与createDocumentFragment的区别

createEvent()

这个方法可以用来模拟浏览器事件 UIEvents MouseEvents HTMLEvents MouseEvent

createTextNode()

把 string的文本节点转换成为dom节点

createTreeWalker()

// 这个方法是可以多某一个element的dom树进行遍历游走
createTreeWalker(root, whatToShow, filter)

const treeWalker = document.createTreeWalker(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  { acceptNode(node) { return NodeFilter.FILTER_ACCEPT; } }
);

const nodeList = [];
let currentNode = treeWalker.currentNode;

while(currentNode) {
  nodeList.push(currentNode);
  currentNode = treeWalker.nextNode();
}

// 其他游走方法 
// parentNode()
// firstChild()
// nextSibling()
// previousSibling()
// firstChild()
// lastChild()`

elementFromPoint(x,y)、elementsFromPoint(x,y)

elementFromPoint 通过坐标 x , y 获取对应的element元素

elementsFromPoint 通过坐标 x , y 获取对应的所有elements元素

exitFullscreen()

退出全屏模式

备注:  如果一个元素 A 在请求进去全屏模式之前,已经存在其他元素处于全屏状态,当这个元素 A 退出全屏模式之后,之前的元素仍然处于全屏状态。浏览器内部维护了一个全屏元素栈用于实现这个目的。

exitPictureInPicture

exitPointerLock

getAnimations

这是获取当前doc的全部动画对象,和css动画相关, TODO - 补全

孤陋寡闻了,才知道已经可以用 JS 来控制 CSS 动画了 - 掘金 (juejin.cn)

getElementXX

getElementById getElementsByClassName getElementsByNam getElementsByTagName

hasFocus()

当前doc是否获得焦点

querySelector()、querySelectorAll()

通过查询查找某个元素

toggleAttribute()

Element 接口的 toggleAttribute()  方法切换给定元素的某个布尔值属性的状态(如果属性不存在则添加属性,属性存在则移除属性)。