jQuery其他方法及插件使用

1. 拷贝对象

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../../jQuery.min.js"></script>
</head>

<body>
    <!-- 
        ```jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象```; 
        如果想要把某个对象拷贝给另给一个对象使用,此时就要使用 $.extend([deep], target, object1, [objectN])方法了!
        深拷贝和浅拷贝; 
        deep:    true为深拷贝, 默认false为浅拷贝; 
        target:  要拷贝的目标对象; 
        object1: 待拷贝到第一个对象的对象; 
     -->
    <script>
        $(function () {
            var targetObj = {};
            var obj = {
                id: 1,
                name: "tom"
            }
            $.extend(targetObj, obj); //把obj拷贝给targetObj
            console.log(targetObj);
            console.log('------------------------');


            var _targetObj = {
                id: 0
            };
            var _obj = {
                id: 8998,
                name: "andy"
            };
            $.extend(_targetObj, _obj);
            console.log(_targetObj);    // _targetObj原来的id被覆盖掉了, 同时name被添加进去了
            console.log('-------------------------');

            //深浅拷贝
            //1. 浅拷贝:只是把被拷贝对象的 【复杂数据类型中的地址给目标对象】,修改目标对象会影响被拷贝对象!
            // 默认是false,浅拷贝; 
            console.log('----浅拷贝-----');
            var __targetObj = {
                id: 0,
                msg: {
                    sex: 'man'
                }
            };
            var __obj = {
                id: 888,
                msg: {
                    age: 18
                },
                name: "andy"
            };
            $.extend(__targetObj, __obj);
            __targetObj.msg.age = 89;
            console.log(__targetObj);     // msg整体被覆盖, name被添加进去了
            console.log(__obj);           // 和__targetObj内容是一样的
            /*
                此时__targetObj 和 __obj中复杂类型msg对象的地址都是一样的, 
                而后又修改了msg中的age, 所以最终__targetObj和__obj的结果应该是一样的; 
                对于简单数据类型来说:和目标对象相同的直接覆盖,其他直接追加进目标对象当中: 如id发生覆盖,name进行追加; 
                {
                    id: 888,
                    msg: { age: 89 }
                    name: 'andy'
                }
            */
            


            //2. 深拷贝: 两个对象,仅仅是值的拷贝,单独有内存空间, 互不影响
            console.log('----深拷贝-----');
            var ___targetObj = {
                id: 0,
                msg: {
                    sex: 'man'
                }
            };
            var ___obj = {
                id: 888,
                msg: {
                    age: 18
                },
                name: "andy"
            };
            $.extend(true, ___targetObj, ___obj);
            ___targetObj.msg.age = 999;
            console.log(___targetObj);  // id被替换了, msg进行了合并 
            console.log(___obj);        // ___obj保持原样
            /*
                此时___targetObj 和 ___obj对象中的复杂类型msg对象的地址都不一样,各是各的,彼此互不影响;
                所以最终结果:
                    ___targetObj
                        {
                            id: 888,
                            msg: { sex: 'man', age: 999 }
                            name: 'andy'
                        }
                        
                    ___obj 
                        {
                            id: 888
                            msg: { age: 18 }
                            name: 'andy'
                        }
            */
        });
    </script>
</body>

</html>

2. 多库共存

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../../jQuery.min.js"></script>
</head>
<body>
    <div></div>
    <span></span>
    <!-- 
        jQuery使用$作为标识符, 随着jQuery的流行, 其他js库也可能用$作为标识符, 这样一起使用会产生冲突; 
        此时需要一个解决方案, 让jQuery和其他js库不存在冲突, 可以同时存在, 这就叫做多库共存. 
        解决方案:
            1. 如果$产生了冲突, 那么干脆在jQuery中使用jQuery来代替$; jQuery("div")
            2. jQuery变量规定新的名称: $.noConflict(),  var xx = $.noConflict();  xx(""); 
     -->
     <script>
         $(function() {
             //自己封装的函数, 使用了$作为函数名; 
             function $(ele) {  
                 return document.querySelector(ele);
             }
             console.log($("div"));


             var _SB = jQuery.noConflict(); //好比说这个_SB变量就相当于之前直接使用$(), jQuery()的那种形式
             console.log(_SB("div"));
             console.log(_SB("span"));
         })
     </script>
</body>
</html>

3. 插件

案例gitee地址:
https://gitee.com/studyCodingEx/studys
在这里插入图片描述

3.1 init

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
        jQuery功能有限, 想要更复杂的效果, 可以借助jQuery插件完成; 
        注意:这些插件都是依赖于jQuery来完成的, 所以必须先引入jQuery文件, 因此也称为jQuery插件; 
        jQuery之家:http://www.htmleaf.com/
        jQuery插件库:http://www.jq22.com/
     -->
</body>
</html>

3.2 瀑布流
请添加图片描述

3.3 图片懒加载

请添加图片描述

3.4 全屏滚动

请添加图片描述

3.4 bootStrap-Js插件

请添加图片描述

3.5 阿里百秀

请添加图片描述

3.6 toDoList

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/24643.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习c语言中的几道习题(小有难度)!

有兴趣的朋友可以看着题目自己做做&#xff0c;最后在和答案对比&#xff01;相信能力会有所提升的。我现在只是刚刚开始学习c语言&#xff0c;如果有什么说的不对的地方&#xff0c;网路过的大佬&#xff0c;及时予以指正。多谢&#xff01; 1、函数判断闰年 实现函数判断yea…

flowable的流程任务统计sql(续)

继续之前的文章&#xff0c;我们这里还需要进行按月统计&#xff0c;同时为了适应jeecg的图形显示&#xff0c;所以做了一些调整如下&#xff1a; 1、按月统计任务数量 select DATE_FORMAT(c.days, %Y%m) months, count(num) num from (SELECT DATE_FORMAT(START_TIME_, %Y-%m…

Niagara—— Events and Event Handlers

目录 一&#xff0c;Events 二&#xff0c;Event Handlers 多数情况下&#xff0c;系统中的发射器需相互交互&#xff0c;才能创建所需效果&#xff1b;意味着&#xff0c;一发射器生成数据&#xff0c;另一发射器监听该数据&#xff0c;以执行相应行为&#xff1b;在Niagar…

CentOS 系统上安装 Jenkins

#######################注意我这里安装jenkins版本要求实际是要安装jdk11版本的~~~我一开始弄错了 您可以按照以下步骤在 CentOS 上安装 JDK&#xff1a; 1. 首先&#xff0c;打开终端并使用 yum 命令更新系统软件包列表。输入以下命令来执行此操作&#xff1a; sudo yu…

TimSort——最快的排序算法

TimSort——最快的排序算法 排序算法是每个程序员绕不开的课题&#xff0c;无论是大学课程还是日常工作&#xff0c;都离不开排序算法。常见的排序算法有&#xff1a;冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、基数排序等。下面是这些算法性能的概…

【源码解析】EasyExcel导入导出源码解析

EasyExcel介绍 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但POI还是有一些缺陷&#xff0c;比如07版Excel解压缩以及解压后存储都…

动态规划-分割回文串 II

动态规划-分割回文串 II 1 题目描述2 示例2.1 示例 1&#xff1a;2.2 示例 2&#xff1a;2.3 示例 3&#xff1a;2.4 提示&#xff1a; 3 解题思路和方法3.1 解题思路3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序3.1.5 回文串的判断方法 3.2 算法代码实…

华为OD机试真题B卷 Java 实现【最长子字符串的长度】

一、题目描述 给你一个字符串s,字符串s首尾相连组成一个环形,请你在环形中找出‘o’字符出现了偶数次最长子字符串的长度。 二、输入描述 输入一串小写字母组成的字符串。 三、输出描述 输出一个整数。 四、解题思路 题目要求在给定的环形字符串中找出字符’o’出现了…

软件测试之-测试用例写作规范

软件测试用例得出软件测试用例的内容&#xff0c;其次&#xff0c;按照软件测试写作方法&#xff0c;落实到文档中&#xff0c;两者是形式和内容的关系&#xff0c;好的测试用例不仅方便自己和别人查看&#xff0c;而且能帮助设计的时候考虑的更周。 一个好的测试用例必须包含…

STL-queue和priority_queue的模拟实现

回顾 对于STL&#xff0c;我们已经知道了vector和list&#xff0c;而它们是STL中被称为六大组件之一的容器&#xff0c;我们还学习了模拟实现stack&#xff0c;而stack在STL中被称为六大组件之一的适配器&#xff0c;今天&#xff0c;我们来学习queue的模拟实现和priority_que…

java 课程信息管理系统Myeclipse开发mysql数据库struts2结构java编程计算机网页项目

一、源码特点 java 课程信息管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使…

javascript基础五:深拷贝浅拷贝的区别?如何实现一个深拷贝?

一、数据类型存储 JavaScript中存在两大数据类型&#xff1a; 基本类型引用类型 基本类型数据保存在在栈内存中 引用类型数据保存在堆内存中&#xff0c;引用数据类型的变量是一个指向堆内存中实际对象的引用&#xff0c;存在栈中 二、浅拷贝 浅拷贝&#xff0c;指的是创建新…

( 数组) 209. 长度最小的子数组——【Leetcode每日一题】

❓209. 长度最小的子数组 难度&#xff1a;中等 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;…

在线Excel绝配:SpreadJS 16.1.1+GcExcel 6.1.1 Crack

前端&#xff1a;SpreadJS 16.1.1 后端&#xff1a; GcExcel 6.1.1 全能 SpreadJS 16.1.1此版本的产品中包含以下功能和增强功能。 添加了各种输入掩码样式选项。 添加了在保护工作表时设置密码以及在取消保护时验证密码的支持。 增强了组合图以将其显示为仪表图。 添加了…

Tugraph的设计和源码初步解析

1. Tugraph Tugraph是一款开源的性能优秀的图数据库&#xff0c;该图数据库使用多版本的BTree作为数据的存储引擎&#xff0c;同时设置了点边数据在这个存储引擎上的布局&#xff08;主要考虑数据的局部性&#xff09;&#xff0c;从而达到高性能查询的目的。本文主要从Tugrap…

研发工程师玩转Kubernetes——自动扩缩容

在《研发工程师玩转Kubernetes——使用Deployment进行多副本维护》一文中&#xff0c;我们通过Deployment实现了多副本维护——即维持在一个确定数量的副本个数。而在现实场景中&#xff0c;我们往往需要根据服务的压力&#xff0c;采用水平&#xff08;横向&#xff09;扩容的…

Springboot +spring security,前后端分离时的security处理方案(二)

一.简介 在前后端分离这样的开发模式下&#xff0c;前后端的交互都是通过 JSON 来进行数据传递的&#xff0c;无论登录成功还是失败&#xff0c;都不会有服务端跳转或者客户端跳转之类的操作。 也就是说无论登录成功还是失败&#xff0c;服务端都会返回一段登录成功或失败的 …

使用【Python+Appium】实现自动化测试

一、环境准备 1.脚本语言&#xff1a;Python3.x IDE&#xff1a;安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境&#xff0c;path添加E:\Software\Android_SDK\platform-tools 4.安装Appium for windows&#xff0c;官网地址 Redirecting 点击下载按钮会到GitHub的…

解决dpdk reserve的内存返回的虚拟地址和iova地址一样的问题

1. 背景: 在ubuntu20.04上用dpdk API: rte_memzone_reserve_aligned("L1L2_PCIE_MEMORY", 1.5*1024*1024*1024, rte_socket_id(), RTE_MEMZONE_1GB|RTE_MEMZONE_IOVA_CONTIG, RTE_CACHE_LINE_SIZE); 分配1.5…

如何在 GNU Linux 上通过 Nvm 安装 Node 和 Npm?

Node.js 是一个流行的 JavaScript 运行时环境&#xff0c;用于开发服务器端和网络应用程序。它带有一个强大的软件包管理器 npm&#xff0c;可以方便地安装和管理 JavaScript 包和依赖项。在 GNU/Linux 系统上&#xff0c;使用 Nvm&#xff08;Node Version Manager&#xff09…
最新文章