摘要: 1. nextSibing:下一个节点,节点类型可以是任何一种,其中就有文本节点。2.得到下一个元素节点: function getNextElement(node){ if(node.nodeType == 1){ return node; } if(node.nextSibling){ return getNextElement(node.nextSibling); } return null;} 阅读全文
posted @ 2011-10-12 21:41 wkylin 阅读(817) 评论(3) 推荐(1) 编辑
摘要: 引用body标签有两做法:第一种:使用DOM Core 即引用某个给定文档的第一个(也是仅有的一个)body标签document.getElementsByTagName("body")[0]第二种:使用HTML-DOM,即引用某个给定文档的body属性:doucumnet.body本文的重点:1. 哪些是DOM Core,哪些是HTML-DOM(慢慢补充) 阅读全文
posted @ 2011-10-12 21:16 wkylin 阅读(344) 评论(0) 推荐(1) 编辑
摘要: DOM加载:浏览器渲染和操作顺序1.HTML解析完毕2.外部脚本和样式表加载完毕3.脚本在文档内解析并执行4.HTML DOM完全构造起来5.图片和外部内容加载6.网页完成加载基于这个顺序,我们会发现如果在DOM完全加载之前使用DOM可能会发生错误(这个可能是很多初学者曾遇到的问题),而如果用onload加载函数又必须等待图片、视频等元素的加载,造成无法运行JavaScript。 阅读全文
posted @ 2011-10-12 18:02 wkylin 阅读(2808) 评论(0) 推荐(0) 编辑
摘要: function removeWhitespace(element){ var loopIndex; for (loopIndex = 0; loopIndex < element.childNodes.length; loopIndex++) { var currentNode = element.childNodes[loopIndex]; if (currentNode.nodeType == 1) { re... 阅读全文
posted @ 2011-10-12 17:55 wkylin 阅读(399) 评论(0) 推荐(0) 编辑
摘要: //DOM没有提供insertAfter()方法function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement) { // 如果最后的节点是目标元素,则直接添加。因为默认是最后 parent.appendChild(newElement); } else { parent.insertBefore(newElement, targetEleme... 阅读全文
posted @ 2011-10-12 09:48 wkylin 阅读(3126) 评论(1) 推荐(2) 编辑
摘要: 对象检测,是为了让脚本有良好的向后兼容性。对象检测的方式为:测试某个特定的对象或对象的属性是否存在,如果存在,就执行Javascript的一个分支,否则就执行另一个分支。解决方案: 只要把某个方法打包在一个if语句里,就可以根据这条if语句的条件表达式的求值结果是true(这个方法存在)还是false(这个方法不存在)来决定应采取怎样的行动。这样就可以把不支持某个特定DOM方法的浏览器检测出来: if(method){ statements}注意:在使用对象检测时,一定要删掉方法名后面的圆括号,如果不删除,测试的将是方法的结果,无论方法是否存在。function myFn(){ if... 阅读全文
posted @ 2011-10-12 00:14 wkylin 阅读(399) 评论(0) 推荐(1) 编辑