什么是DOM?
外行看来前端工程师的工作就是改页面(HTML、CSS),写脚本(JavaScript)。当你意识到你不是在改HTML而是在操作DOM时,你就升级了! 那么什么是DOM?
MDN:文档对象模型(DOM)是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将web页面和脚本或程序语言连接起来。
说白了DOM就是浏览器为JavaScript提供的一系列接口(通过window.documnet提供的),通过这些接口我们可以操作web页面。但DOM并不是编程语言,它是文档对象的模型,该模型是独立于编程语言的。比如我们在Python中也可以操作DOM:
所以Web前端常讲的DOM API (web 或 XML 页面) = DOM + JS (脚本语言)
DOM 创建
DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性。DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数:
Element,元素
Attribute,属性
Text,文本
DOM节点创建最常用的便是document.createElement和document.createTextNode方法:
DOM 查询
元素查询的API返回的的结果是DOM节点或者DOM节点的列表。document提供了两种Query方法:
Element也提供了很多相对于元素的DOM导航方法:
DOM 更改
属性操作