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