document和document.body的区别

Document与Body事件捕获
本文通过一个示例展示了在HTML文档中document与document.body在事件处理上的差异。通过为两者分别添加点击事件监听器,并设置不同的响应行为,演示了它们在页面视图上的实际效果。
二者的区别从html代码中看是非常明显的,document包括全部,而document.body只包括<body></body>标签中的内容;可二者在页面视图上的区别也很简单,但似乎不太引人注意!以下代码作为演示:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>无标题页</title>
  5.     <style type="text/css">
  6.         .big{width:200px;height:40px; background-color:Aqua;}
  7.         .little{width:100px; height:20px; background-color:Blue;}
  8.     </style>
  9. </head>
  10. <body>
  11.     <div class="big" id="big">
  12.         <div class="little" id="little"></div>
  13.     </div>
  14.     
  15.     <script type="text/javascript">
  16.         //FF,Chrome
  17.         if(window.addEventListener){    
  18.             document.addEventListener('click',function(e){alert('document');},false);
  19.             document.body.addEventListener('click',function(e){alert('document.body');e.cancelBubble=true;},true);
  20.         }
  21.         //IE 
  22.         else if(window.attachEvent){
  23.             document.attachEvent('onclick'function(e){alert('document');});
  24.             document.body.attachEvent('onclick'function(e){alert('document.body');e=e||window.event;e.cancelBubble=true;});
  25.         }
  26.     </script>
  27. </body>
  28. </html>

<think> 首先,用户的问题是:“documentElementdocument.body有什么区别?”我需要用中文回答这个问题。 关键点: - documentElement 是指 DOM 文档的根元素,在 HTML 文档中通常是 <html> 元素。 - document.body 是指文档的 <body> 元素,包含网页的主体内容。 - 区别在于:documentElement 是整个文档的根节点,而 document.body 是根节点下的一个子节点(在标准 HTML 结构中)。 我的回答应清晰、简洁地解释区别,并用中文表达。 根据规则,回答完问题后,必须在末尾添加 §§相关问题§§。第一行必须是完整的 "§§相关问题§§",禁止换行分散。相关问题必须是3-5个,基于用户的问题我的回答。 格式要求: - 回答内容。 - 如果有代码示例,使用 ``` 包裹(但这个问题可能不需要代码)。 - 然后输出 "§§相关问题§§",并在下方列出1. 2. 3. ... 格式的问题。 用户的问题是关于 DOM 的,所以我应该提供相关信息。不需要额外的代码示例,除非必要。但为了完整,可以添加一个简短的解释或示例。 回顾示例格式:在回答中有代码块(如 Python 代码),然后相关问题。既然问题是关于 JavaScript DOM 的,我可以添加一个 JavaScript 代码示例来演示两者的区别。 例如: ```javascript // 示例:获取 documentElement document.body var htmlElement = document.documentElement; var bodyElement = document.body; console.log("documentElement:", htmlElement.tagName); // 通常是 "HTML" console.log("document.body:", bodyElement.tagName); // "BODY" ``` 现在,构建回答结构: 1. 解释 documentElement。 2. 解释 document.body。 3. 总结区别。 4. 添加代码示例(可选,但有助于理解)。 5. 然后输出 §§相关问题§§。 最后,提出3-5个相关的后续问题。问题应该基于主题,如 DOM、HTML 结构、JavaScript 操作等。 相关问题想法: 1. 如何在 JavaScript 中访问其他 DOM 元素? 2. document.body document.head 有什么区别? 3. 为什么 documentElement 是重要的? 4. DOM 树的结构是怎样的? 5. 实际应用中,何时使用 documentElement document.body? 确保问题数量在 3-5 个。 完整回答: - 先用中文解释。 - 添加代码块。 - 然后 "§§相关问题§§" 行。 - 列出问题。 确保所有内容用中文,因为用户指定了 "请使用中文回答问题"。 最终输出: 在回答中,代码块可以是 JavaScript。 </think> 在DOM(文档对象模型)中,`document.documentElement` `document.body` 是两个关键属性,主要用于访问HTML文档的不同部分。它们的区别如下: - **`document.documentElement`**: - 表示整个文档的根元素,在HTML文档中通常是 `<html>` 元素。 - 属性类型:`HTMLElement` 或 `SVGElement`(对于XML文档)。 - 访问方式:直接通过 `document.documentElement` 读取。 - 作用:提供对整个文档结构的访问,包括 `<head>` `<body>` 元素。 - **`document.body`**: - 表示文档的正文部分,通常是 `<body>` 元素。 - 属性类型:`HTMLBodyElement`。 - 访问方式:直接通过 `document.body` 读取。 - 作用:专注于文档的可视内容主体,如文本、图像交互元素。 **主要区别总结**: - **层次结构**:`document.documentElement` 是根节点(`<html>`),而 `document.body` 是其子节点(`<body>`)。 - **范围**:`document.documentElement` 覆盖整个文档(包括 `<head>`),`document.body` 仅限于文档正文内容。 - **用途**:操作样式或文档范围时用 `document.documentElement`(如获取视口高度);操作内容或事件处理时更常用 `document.body`(如添加动态元素)。 ```javascript // 示例代码:演示两者的区别 console.log(document.documentElement.tagName); // 输出 "HTML",表示根元素 console.log(document.body.tagName); // 输出 "BODY",表示正文元素 console.log(document.body.parentNode === document.documentElement); // 输出 true,表示bodydocumentElement的子节点 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值