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

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

  • 相关阅读:
    Module not found: Error: Can't resolve './style':配置 extensions 的坑
    Mysql5.7前后修改用户密码变化
    一步步分析Java深拷贝的两种方式clone和序列化
    Windows下Nodejs的开发环境搭建
    JavaNIO第一话Buffer
    Vscode浏览器打开html vscode修改默认浏览器
    Windows电脑多个SSH Key管理.md
    jsonp跨域的原理
    POJ1502(MPI Maelstrom)
    POJ1088(滑雪)
  • 原文地址:https://www.cnblogs.com/xmdykf/p/12218564.html
Copyright © 2020-2023  润新知