html属性中的值是不变的,dom属性的值是变化的。
核心DOM适合操作节点,如创建,删除,查找等;HTML DOM适合操作属性,如读取或修改属性的值。
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
HTML仅仅是文档树和节点对象的一种描述方法。
-
浏览器的解析器部分,根据HTML直接把DOM文档树,交给浏览器引擎。
-
用其他的方法,也可以描述DOM对象,例如JSX。(当然用其他方法描述DOM对象的时候,生成DOM文档树的过程,肯定会发生相应的修改)
JavaScript中的DOM对象,仅仅是一种操作浏览器引擎中DOM对象的接口。
-
JavaScript中的DOM对象,和浏览器引擎中存储的DOM节点,本质上不是一个东西。
-
用户实际上仅仅有权操作JavaScript中提供的DOM对象。
-
JS引擎和浏览器引擎协作,确保了JavaScript的DOM对象,是引擎中DOM节点的一个原样映射。
-
这样用户就能通过操作JavaScript的DOM对象,透明的修改引擎中存储的DOM节点。
-
而浏览器引擎在本质上,仅仅负责在DOM树更新时承担重新渲染,实际上并不关心JS的存在。
-
你如果用其他办法修改了引擎使用的DOM树,也能更新文档结构。(当然这种办法基本上不存在…)