《JavaScript高级程序设计(第3版)》
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <ul class="list"> <li class="item">1</li> <li class="item">2</li> <li class="item current">3</li> </ul> <button id="myButton">button</button> <script> /** * getElementsByClassName() * 支持 getElementsByClassName()方法的浏览器有 IE 9+、Firefox 3+、Safari 3.1+、Chrome 和 Opera 9.5+ */ +function() { var nodeList = document.getElementsByClassName(‘item current‘) // item && current console.log(nodeList) var nodeList = document.getElementsByClassName(‘item‘) console.log(nodeList) }(); /** * classList * 支持 classList 属性的浏览器有 Firefox 3.6+和 Chrome * add(value) * contains(value) * remove(value) * toggle(value) */ +function() { var nodeList = document.getElementsByClassName(‘item‘) nodeList.item(0).classList.add(‘current‘) nodeList.item(2).classList.remove(‘current‘) }(); /** * document.activeElement document.hasFocus() * 实现了这两个属性的浏览器的包括 IE 4+、Firefox 3+、Safari 4+、Chrome 和 Opera 8+ * 元素获得焦点的方式有页面加载、用户输入(通常是 通过按 Tab 键)和在代码中调用 focus()方法 * 默认情况下,文档刚刚加载完成时,document.activeElement 中保存的是 document.body 元 素的引用。 * 文档加载期间,document.activeElement 的值为 null * 查询文档获知哪个元素获得了焦点,以及确定文档是否获得了焦点 * 通过检测文档是否获得了焦点,可以知道用户是不是正在与页面交互 */ +function() { console.log(document.activeElement) console.log(document.hasFocus()) var button = document.getElementById(‘myButton‘) button.focus() console.log(document.activeElement === button) console.log(document.hasFocus()) }(); /** * document.readyState * 支持 readyState 属性的浏览器有 IE4+、Firefox 3.6+、Safari、Chrome 和 Opera 9+ * IE4 最早为 document 对象引入了 readyState 属性。 * 然后,其他浏览器也都陆续添加这个属性, 最终 HTML5 把这个属性纳入了标准当中 * Document 的 readyState 属性有两个可能的值 * loading,正在加载文档 * complete,已经加载完文档 */ +function() { if (document.readyState == ‘complete‘) { console.log(‘complete‘) } }(); /** * document.compatMode * 陆续实现这个属性的浏览器有 Firefox、Safari 3.1+、Opera 和 Chrome * 标准模式 CSS1Compat * 混杂模式 BackCompat */ if (document.compatMode == ‘CSS1Compat‘) { console.log(‘Standards mode‘) } else { console.log(‘Quirks mode‘) } /** * 作为对 document.body 引用文档的<body>元素的补充,HTML5 新增了 document.head 属性, 引用文档的<head>元素 * 实现 document.head 属性的浏览器包括 Chrome 和 Safari 5 */ var head = document.head || document.getElementsByTagName(‘head‘)[0] console.log(head) </script> </body> </html>