Javascript 技巧

 

一些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、对函数进行抽象

  把具体的值转换成为一个函数的参数,就可以把它成为一个更通用的函数

posted @ 2020-01-20 16:47  小喵钓鱼  阅读(173)  评论(0编辑  收藏  举报