美文网首页
>>>>> jQuery中的一些注意事项

>>>>> jQuery中的一些注意事项

作者: 風隨風去 | 来源:发表于2016-12-15 16:59 被阅读0次

    this的指向

    • jQuery中,this指向的是原生的DOM元素element

    获取JQ对象

    • jQ中获取的元素是一个集合,直接操作一般默认为第一个

    • jQ中查找元素时,没有找到的不会报错,只是不执行,这样就不会影响后边代码的执行,但同时也不方便调试

    • get()获取的也是DOM元素,因为jq中没有获取内容的高等操作,所以我们可以用get来进行jq对象转DOM对象,从而达到jq中没有的方法以原生的js方法来实现和获取想要的效果

    $('div').get(0)==document.getElementsByTagName('div')[0];  //true
    

    其他注意事项

    • 当属性值有空格时,我们必须加上引号,否则会报错!

    • jQ中,设置属性是可以用链式操作的,但取值不能,最多只能是最后一个是取值的,一但取值,链式操作就应当停止

    • 利用show()、hide()来显示隐藏可以智能判断元素的display,并且隐藏下也能获取到它的样式值

    • 对于节点的操作,我们可以传入一个选择器字符串参数来进行筛选

    • jq中return是退出本次循环,退出整个循环则需要return false

    • position() 是计算的margin的顶点到父级定位元素的距离, 其他跟位置相关的函数或属性都是以border的顶点为参考点的

    • 通过加点的方式我们可以给事件进行命名,叫做事件的命名空间,这样我们就可以在清除事件时指定我们想要指定清除的事件了,但是要记住一点,那就是记得要带上点

    • animate是一个异步函数,animate函数的作用只是将运动加入到运动队列中,我们可以理解为一个运动的数组,当一个运动完成才执行下一个运动,不会阻塞后面代码的执行

    一些个工具方法

    • $.type()
      • 比原生typeof更强大
       console.log( $.type('aa') )//"string"
       console.log( $.type(11) )//"number"
       console.log( $.type(false) )//"boolean"
       console.log( $.type(function(){}) )//"function"
       console.log( $.type({}) )//"object"
       console.log( $.type([]) )//"array"
       console.log( $.type(new Date()) );//"date"
      
    • $.isFunction()
    • $.isNumeric()
    • $.isArray()
    • $.isWindow()
    • $.isEmptyObject()
    • 判断是否为空对象, 也可以判断空数组
     console.log($.isEmptyObject({}) )//true
     console.log($.isEmptyObject({name: 11}) )//false
     console.log($.isEmptyObject([]) );//true
    
    • $.isPlainObject()
    • 测试对象是否是纯粹的对象(通过 "{}" 或者 "new Object" 创建的)
      var obj1 = {};
      var obj2 = {name: 1};
      var obj3 = [];
      var obj4 = new Date();
    
       console.log( $.isPlainObject(obj1) );//true
       console.log( $.isPlainObject(obj2) );//true
       console.log( $.isPlainObject(obj3) );//false
       console.log( $.isPlainObject(obj4) );//false
    
    • $.extend()
    • 对象的拷贝
      1.浅拷贝
       var obj1 = {name: 'hello'};
       var obj2 = {};
       $.extend(obj2, obj1);
       obj2.name = 'Hi';
       console.log(obj1.name);//hello
      
    2.深拷贝---对象的值为对象时,改变后仍不会影响原来的值,这时,只需将第一个参数设为true就可以了
    ```js
      var obj1 = {
          name: {
              first: 'hello'
          }
      };
      var obj2 = {};
      $.extend(true, obj2, obj1);
      obj2.name.first = 'Hi';
      console.log(obj1.name.first);//hello
    
    • 合并对象
      将多个对象合并到第一个对象,后面的属性前面有则会覆盖
       var obj1 = {};
       var obj2 = {name: 1};
       var obj3 = {age: 2};
      
       $.extend(obj1, obj2, obj3);
       console.log(obj1);//{name: 1, age:2}
      
     var obj1 = {};
    var obj2 = {name: 1};
    var obj3 = {name:2,age: 2};
    
    $.extend(obj1, obj2, obj3);
    console.log(obj1);//{name: 2, age:2}
    

    相关文章

      网友评论

          本文标题:>>>>> jQuery中的一些注意事项

          本文链接:https://www.haomeiwen.com/subject/eogimttx.html