【JavaScript高级程序设计(第3版) #BOOK#】第10章 DOM — 10.1.2 Document类型

《JavaScript高级程序设计(第3版)》

 

<ul id="list"> <li>1</li> <li name="item2">2</li> <li>3</li> </ul>

 

 

文档子节点

/**
 * documentElement body doctype
 *
 * 由于浏览器对document.doctype的支持不一致,因此这个属性的用处很有限
 * 从技术上说,出现在<html>元素外部的注释应该算是文档的子节点。然而,不同的浏览器在是否解析这些注释以及能否正确处理它们等方面,也存在很大差异 */ console.log(document.nodeType === 9)
console.log(document.documentElement) // 指向<html>元素 console.log(document.body) // 指向<body>元素 console.log(document.doctype) // 取得对<!DOCTYPE>的引用

 

 

文档信息

/**
 * title
 * URL 页面完整的URL 
 * domain 页面的域名
 * referrer 保存着链接到当前页面的那个页面的URL
 *
 * domain是可以设置的。但由于安全方面的限制,也并非可以给domain设置任何值
 * 假设有一个页面加载自www.wrox.com,其中包含一个内嵌框架,框架内的页面加载自p2p.wrox.com
 * 由于document.domain字符串不一样,内外两个页面之间无法相互访问对方的JavaScript对象。但
 * 如果这两个页面的document.domain值都设置为wrox.com,它们之间就可以通信了 */ console.log(document.title) 

 

 

查找元素

/**
 * getElementById getElementsByTagName * getElementsByName 
 *
 * 如果页面中多个元素的ID值相同,getElementById只返回文档中第一次出现的元素
 * IE7及较低版本还为此方法添加了一个有意思的怪僻:name特性与给定ID匹配的表单元素也会被该方法返回
 * 如果有哪个表单元素的name特性等于指定ID,而且该元素在文档中位于带有给定ID的元素前面,那么IE就会返回那个表单元素
 * 为了避免IE中存在的这个问题,最好的办法是不让表单字段的name特性与其他元素的ID相同
 * 由于IE将注释(Comment)实现为元素(Element),因此在IE中调用getElementsByTagName(‘*‘)将会返回所有注释节点 */ console.log(document.getElementsByTagName(‘*‘))
console.log(document.getElementsByName(‘item2‘))

 

 

特殊集合

/**
 * document.anchors 包含文档中所有带name特性的a元素
 * document.applets 包含文档中所有的applet元素
 * document.forms 包含文档中所有的form元素
 * document.images 包含文档中所有的img元素
 * document.links 包含文档中所有带href特性的a元素 */

 

 

DOM 一致性检测

/* * hasFeature
 * 
 * 返回true有时候也不意味着实现与规范一致
 * 最好除了检测hasFeature之外,还同时使用能力检测 */ console.log(‘==================================================‘)
console.log(document.implementation.hasFeature(‘Core‘, ‘1.0‘)) 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。