jQuery其他方法

目录

1. jQuery拷贝对象

2. jQuery多库共存

3. jQuery插件

1)全屏滚动(fullpage.js):

2)bootstrap JS插件:


1. jQuery拷贝对象

如果想要把某个对象拷贝(合并)给另一个对象使用,此时可以使用$.extend()方法

语法:

  • deep:如果设为true为深拷贝,默认为false为浅拷贝
  • target:要拷贝的目标对象
  • object1:待拷贝到第一个对象的对象 
  • objectN:待拷贝到第N个对象的对象 
  • 浅拷贝:把拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象
  • 深拷贝:前面加true,完全克隆(拷贝对象,而不是地址),修改目标对象不会影响被拷贝对象
   <script src="jquery.min.js"></script>
</head>
<body>
    <script>
        $(function() {
            var targetObj = {};
            var obj = {
                id: 1,
                name: "an"
            };
            //把obj拷贝给targetObj一起使用
            $.extend(targetObj, obj);
            console.log(targetObj);

            var targetObjbj1 = {
                id: 0
            };
            var obj1 = {
                id: 1,
                name: "tom"
            };
            //把obj1拷贝到targetObjbj1一起使用,obj1会覆盖targetObjbj1原来的数据
            $.extend(targetObjbj1, obj1);
            console.log(targetObjbj1);  

            var targetObjbj2 = {
                id: 0
            };
            var obj2 = {
                id: 2,
                name: "tom",
                msg: {
                    age: 18
                }
            };
            //浅拷贝:把原来对象里面的复杂数据类型的地址拷贝给目标对象,修改目标对象会影响被拷贝对象
            $.extend(targetObjbj2, obj2);
            //由于目标对象里面的复杂数据类型的age改为20,所以目标对象和原来对象的age都会改为20
            targetObjbj2.msg.age = 20;
            console.log(targetObjbj2);
            console.log(obj2);  

            var targetObjbj3 = {
                id: 0
            };
            var obj3 = {
                id: 3,
                name: "tom",
                msg: {
                    age: 18
                }
            };
            //深拷贝:把原来对象里面的数据完全复制一份给目标对象,如果里面有不冲突的属性,会合并到一起
            $.extend(true, targetObjbj3, obj3);
            //修改目标对象不会影响被拷贝对象
            targetObjbj3.msg.age = 23;
            console.log(targetObjbj3);
            console.log(obj3);  


        })
    </script>
</body>

结果为:

2. jQuery多库共存

jQuery使用$作为标识符,随着jQuery的流行,其他js库也会用$作标识符,这样一起使用会引起冲突。所以需要一个解决方案,让jQuery和其他的js库不存在冲突,可以同时存在,这就叫多库共存。

jQuery解决方案:

  1. 把里面的$符号统一改为jQuery,比如jQuery("div");
  2. jQuery变量规定新的名称:$noConflict();
    <script src="jquery.min.js"></script>
</head>
<body>
    <div></div>
    <span></span>
   <script>
       $(function() {
           function $(ele) {
               return document.querySelector(ele);
           }
           console.log($("div"));
           //1.$冲突:把里面的$符号统一改为jQuery
           jQuery("span");
           //2.jQuery变量规定新的名称:$noConflict()
           var normal = jQuery.noConflict();
           console.log(normal("span"));
           normal.each();
       })
   </script>
</body>

结果为:

3. jQuery插件

jQuery插件常用的网站:

  1. jQuery插件库:jQuery插件库-收集最全最新最好的jQuery插件
  2. jQuery之家:jQuery之家-自由分享jQuery、html5、css3的插件库

使用步骤:

  1. 引入相关文件(jQuery文件和插件文件)
  2. 复制相关html、css、js(调用插件)

1)全屏滚动(fullpage.js):

中文翻译网站:jQuery全屏滚动插件fullPage.js_dowebok

2)bootstrap JS插件:

    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <script src="jquery.min.js"></script>
    <script src="bootstrap/js/bootstrap.min.js"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值