一些JavaScript运用的小技巧,方法,函数等等
1、共享 onload 事件(非常好用)
1 function addLoadEvent(func) 2 { 3 let oldOnload = window.onload; 4 if(typeof window.onload != 'function') 5 { 6 window.onload = func; 7 } 8 else { 9 window.onload = function() 10 { 11 oldOnload(); 12 func(); 13 } 14 } 15 }
2、少访问 DOM 和尽量减少标记
繁冗的表示
1 if(document.getElementsByTagName('a').length > 0) 2 { 3 var links = document.getElementsByTagName("a"); 4 for (var i=0; i < links.length; i++) 5 { 6 // 对每个链接进行处理 7 } 8 }
虽然这段代码可以运行,但是不能保证最佳性能
最佳表示
1 // 将第一次搜索的结果保存在一次变量之中,减少时空开销 2 var links = document.getElementsByTagName("a"); 3 if (links.length > 0) 4 { 5 ...... 6 }
3、在现有方法后插入一个元素
1 function insertAfter(newElement, targetElement) 2 { 3 // 把目标元素的parentNode属性保存在变量 parent 里 4 let parent = targetElement.parentNode; 5 // 检查元素是否 parent 的最后一个元素 6 if(parent.lastChild == targetElement) 7 { 8 // 如果是,则直接追加 9 parent.appendChild(newElement); 10 } 11 // 如果不是,插入目标元素和目标元素下一个元素之间 12 else { 13 parent.insertBefore(newElement, targetElement.nextSibling); 14 } 15 }
4、返回所有元素
如果把通配符 "*" 作为参数传给 getElementByTagName 方法,就会把所有的元素,不管标签名是什么,一 一 返回
1 getElementsByTagName("*")
5、最佳 DOM 方法选择
- 在需要对文档的 现有信息 进行检索时,以下 DOM 方法最实用
- getElementById
- getElementByTagName
- getAttribute
- 在需要把信息添加到文档里面去,以下DOM方法最有用
- createElement
- createTextNode
- appendChild
- insertBefore
- setAttribute
6、修改 className,通过JavaScript 快捷函数
1 function addClass(element, value) 2 { 3 // 检查 className 的属性的值是否是 null 4 if(!element.className) 5 { 6 // 如果是,把新的 class 设置值直接赋值给className属性 7 element.className = value; 8 } 9 else{ 10 // 如果不是,把一个空格和新的class设置值追加到 className 属性上去 11 newClassName = element.className; 12 newClassName += " "; 13 newClassName += value; 14 element.className = newClassName; 15 } 16 }
7、对函数进行抽象
把具体的值转换成为一个函数的参数,就可以把它成为一个更通用的函数