DOM树

在DOM中:

  • 每个HTML标签都是一个对象
  • 嵌套的标签是子标签
  • 标签内文本也是一个对象
  • 以上对象都可以通过JS访问

DOM树的例子

<!DOCTYPE HTML>
<html>
<head>
    <title>About elk</title>
</head>
<body>
    The truth about elk.
</body>
</html>

DOM将HTML表示为标签的树形结构

  • 标签叫做元素节点
  • 元素内的文本叫做文本节点,图中标记为#text。一个文本节点只包含一个字符串,文本节点总是DOM树的叶子,即没有子项。
  • 空格和换行符都是完全有效的字符,和字母数字地位相同。

由于历史原因,head标签前后的换行与空格均被忽略。
</body>之后不能有也不会有空格,因为body后的东西自动被移动到body内。

去掉空格:

<!DOCTYPE HTML>
<html><head><title>About elk</title></head><body>The truth about elk.</body></html>

此时的DOM树为:

自动修正

如果浏览器遇到格式不正确的 HTML,它会在形成 DOM 时自动更正它。
例如,顶级标签总是 <html> 。即使它不存在于文档中 — 它也会出现在 DOM 中,因为浏览器会创建它。对于 <body> 也是一样。
例如,如果一个 HTML 文件中只有一个单词 “Hello”,浏览器则会把它包装到 <html><body> 中,并且会添加所需的 <head>

在生成 DOM 时,浏览器会自动处理文档中的错误,关闭标签等

表格永远有<tbody>

浏览器控制台

在元素选项中用鼠标选择一个元素后,
在控制台:最后选中的元素可以通过 $0 来进行操作,先前选择的是 $1