浅谈JavaScript之Dom的Document节点及其属性

举报
运气男孩 发表于 2021/12/16 23:58:36 2021/12/16
【摘要】 DOM Document节点 DOM全称为Document Object Model,即文档对象模型。它是一套用来管理控制html文档的规则。而Document节点则是一种具象化的表现形式。     假设我们把整个html文档看成是一个对象,那么这个对象就是Document节点。而我们如何操作控制这个对象的标准,就是DOM。  ps:dom中规定html页面中的所有元素都是节点。 docum...

DOM Document节点 

DOM全称为Document Object Model,即文档对象模型。它是一套用来管理控制html文档的规则。而Document节点则是一种具象化的表现形式。     假设我们把整个html文档看成是一个对象,那么这个对象就是Document节点。而我们如何操作控制这个对象的标准,就是DOM。  ps:dom中规定html页面中的所有元素都是节点。 

document节点又被叫做document对象。每个载入浏览器的 HTML 文档都会成为 document对象。 document对象使我们可以从脚本中对HTML页面中的所有元素进行访问。 document是html文档的根节点,每张网页都有自己的document节点。window.document属性就指向这个节点。也就是说只要浏览器开始载入HTML文档,这个节点对象就存在了,可以直接调用。 

Document节点属性 

       javascript为document节点提供了很多属性方便我们更好地使用。相对用得比较多的有下面这些: doctype,documentElement,body,head:返回文档内部的某个节点。 documentURL,URL,domain,lastModified,location,title,readyState:返回文档指定信息。 anchors,forms,images,links,scripts:返回文档内部特定节点的集合。 

(1)doctype,documentElement,body,head属性

【doctype】     对于HTML文档来说document对象一般有两个子节点,第一个子节点就是doctype。doctype节点是一个对象,包含了当前文档类型信息。如果网页没有声明DTD,该属性返回null。            

对于HTML5文档,doctype节点就代表<!DOCTYPE html>。    

语法:document.doctype    

var doctype = document.doctype;    

console.log(doctype); // "<!DOCTYPE html>"    

console.log(doctype.name); // "html“      

Ps:htmldtd有三种类型:1.strict 2.transitional 3. Frameset 

【documentElement】    

document.documentElement属性,表示当前文档的根节点。它通常是document节点的第二个子节点,紧跟在document.doctype节点后面。    

对于HTML网页,该属性返回HTML节点。但是对我们来说一般都是通过documentElement节点来访问页面当中的其他子节点。    

语法:document.documentElement    

console.log(document.documentElement); 

【body】

body属性返回当前文档的body或frameset节点,如果不存在这样的节点,就返回null。 这个属性是可写的,如果对其写入一个新的节点会导致原有的所有子节点被移除。但是我们暂时不作考虑,稍后讲过通过节点改写html页面后我们再来考虑。    

语法:document.body    

console.log(document.body); 

【head】    

head属性返回当前文档的head节点。如果当前文档有多个head,则返回第一个。    

语法:document.head     console.log(document.head); 

(2)documentURI,URL,domain,lastModified,location,title,readyState属性 

 【documentURI】         

documentURI属性返回当前文档的网址。 documentURI属性所有文档都具备。    

语法:document.documentURI 

【URL】         

documentURI属性返回当前文档的网址。URL属性只有HTML文档才具备。只读    

语法:document.URL

ps:IE浏览器不支持documentURI属性

ps:document.documentURI===document.URL//true 

【domain】         

domain属性返回当前文档的域名。    

例如某网页的网址是 http://www.example.com/hello.html ,domain属性就等于 www.example.com 。如果无法获取域名,该属性返回null。    

语法:document.domain    

var baidu = "www.baidu.com";    

if (document.domain === baidu){         window.close();     }     //如果域名是百度,则关闭当前页面 

【location】         

location属性返回一个只读对象,提供了当前文档的URL信息。

返回完整的URL:document.location.href  返

回当前遵守协议:document.location.protocol

返回当前页面域名+端口号:document.location.host 

返回当前页面域名:document.location.hostname

返回当前页面端口号,如果不存在则返回空:document.location.port

返回当前页面在服务器中路径:document.location.pathname 

返回当当前页面URL中的查询字符串:document.location.search 

跳转到另一个网址:document.location.assign(‘http://www.google.com’) 

【title】        

title属性返回当前文档的标题,该属性是可写的。         

语法:document.title     document.title = '新标题';     

【characterSet】     characterSet属性返回渲染当前文档的字符集,比如UTF-8、ISO-8859-1    

语法:document.characterSet 

【readyState】         

readyState属性返回当前文档的状态。    

共有三种可能值:    

  • 加载HTML代码阶段(尚未完成解析)是“loading”,    
  • 加载外部资源阶段是“interactive”,    
  • 全部加载完成是“complete”。    

if (document.readyState === ‘complete') {         console.log(‘当前网页已经加载完毕');     }     //但是很显然这种判断方式只能判断一次,如果页面在判断时没有加载完成,那么就无法确定页面的究竟何时加载完毕。 

(3)anchors,forms,images,links,scripts:返回文档内部特定元素的集合。 

这些集合都是动态的,原节点有任何变化会立刻反映在集合中。

【anchors】     anchors属性返回 网页中所有指定了name属性的a节点元素 。

【forms】     forms属性返回 网页中所有表单 。

【images】     images属性返回 网页中所有图片 

【links】     links属性返回 网页中所有链接元素(即带有href属性的a标签)

【scripts】     scripts属性返回 网页中所有的脚本     var scripts = document.scripts;     if (scripts.length !== 0)       {console.log("当前网页有脚本");} 

关于js的document节点就说到这里了,如有不足之处,欢迎指正!

感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。