jQuery学习笔记1

// jQuery的入口函数
// 1.等着DOM结构渲染完毕即可执行内部代码,不必等到所以外部资源加载完毕,jQuery帮我们完成了封装
// 相当于原生js中的DOMContentLoaded 

<script src="./jquery.min.js"></script>
<style>
      div {
        width: 200px;
        height: 200px;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <div></div>
    <script>
      // jQuery的入口函数
      // 1.等着DOM结构渲染完毕即可执行内部代码,不必等到所以外部资源加载完毕,jQuery帮我们完成了封装
      // 相当于原生js中的DOMContentLoaded
      // $("div").hide();
      // 1.等着页面dom加载完毕之后执行js代码
      // $(document).ready(function () {
      //   $("div").hide();
      // });
      // 2.等着页面DOM加载完毕再去执行js代码
      $(function () {
        $("div").hide();
      });
    </script>

jQuery的顶级对象$

      // 1.$是jQuery的别称(另外的名字)
      // $(function () {
      //   alert("1111");
      // });
      jQuery(function () {
        // alert("1111");
        // $("div").hide();
        jQuery("div").hide();
      });
      // 2.$同时也是jQuery的顶级对象

 

 代码测试功能:

      // 1.DOM对象: 用原生js获取过来的对象就是DOM对象
      var myDiv = document.querySelector("div"); // myDiv 是原生DOM对象
      var mySpan = document.querySelector("span"); // mySpan 是原生DOM对象
      console.dir(myDiv);
      // 2.jQuery对象: 用jQuery方式获取过来的对象是jQuery对象,本质:通过$把DOM元素进行了包装
      $("div"); // $('div')是一个jQuery对象
      $("span"); // $('span')是一个jQuery对象
      console.dir($("div"));
      // 3.jQuery对象只能使用jQuery方法,DOM对象则使用原生的javascript属性和方法
      // myDiv.style.display = 'none'
      // myDiv.hide(); // myDiv是一个dom对象不能使用jquery里面的hide方法
      // $("div").style.display = "none"; //会报错

jQuery对象和DOM对象

    <style>
      video {
        width: 200px;
        height: 200px;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <video src="mov.mp4" muted></video>
    <script>
      // DOM对象转换成为jQuery对象
      // (1)我们直接获取视频,得到就是jQuery对象
      $("video");
      // (2)我们已经使用原生js获取过来DOM对象
      var myvideo = document.querySelector("video");
      // $(myvideo).play(); // jquery里面没有play这个方法
      // 2.jQuery对象转换成DOM对象
      // myvideo.play(); // 原生写法比较麻烦
      // $("video")[0].play();
      $("video").get(0).play();
    </script>

jQuery选择器

隐式迭代(重要)

    <script>
      // 1.获取四个div元素
      console.log($("div"));
      // 2.给四个div设置背景颜色为粉色,jquery对象不能使用style
      $("div").css("background", "pink");
      // 3.隐式迭代就是把匹配的所有元素进行遍历循环,给每一个元素添加css这个方法
      $("ul li").css("color", "red");
    </script>

    <script>
      $(function () {
        $("ul li:first").css("color", "red");
        $("ul li:eq(2)").css("color", "blue");
        $("ol li:odd").css("color", "skyblue");
        $("ol li:even").css("color", "pink");
      });
    </script>

 

查找父级,最近一级子元素,所有子元素    
<script>
      // 注意一下都是方法 带括号
      $(function () {
        // 1.父 parent() 返回的是 最近一级的父级元素
        console.log($(".son").parent());
        // 2.子
        // (1)儿子 children() 子代选择器 ul>li
        $(".nav").children("p").css("color", "red");
        // (2) 可以选择里面所有的孩子 包括儿子和孙子 find() 类似于后代选择器
        $(".nav").find("p").css("color", "red");
        // 3.兄
      });
    </script>


新浪下拉菜单
   <script>
      $(function () {
        // 鼠标进入
        $(".nav>li").mouseover(function () {
          // $(this) jQuery当前元素 this不要加引号
          // show() 显示元素 hide() 隐藏元素
          $(this).children("ul").show();
        });
        // 鼠标移开
        $(".nav>li").mouseout(function () {
          // $(this) jQuery当前元素 this不要加引号
          // show() 显示元素
          $(this).children("ul").hide();
        });
      });
    </script>


    筛选选择器
    <script>
      // 注意一下都是方法 带括号
      $(function () {
        // 1. 兄弟元素siblings 除了自身元素之外所有亲兄弟
        $("ol .item").siblings("li").css("color", "red");
        // 2.第n个元素
        var index = 2;
        // (1) 我们可以利用选择器的方式选择
        // $("ul li:eq(2)").css("color", "blue");
        // $("ul li:eq(" + index + ")").css("color", "blue");
        // (2) 我们可以利用选择方法的方式选择 更推荐这种写法
        $("ul li").eq(index).css("color", "blue");
        // 3.判断是否有某个类名
        console.log($("div:first").hasClass("current"));
        console.log($("div:last").hasClass("current"));
      });
    </script>

    <script>
      $(function () {
        // 1. 隐式迭代 给所有的按钮都绑定了点击事件
        $("button").click(function () {
          // 2.当前元素变化背景颜色
          $(this).css("background", "pink");
          // 3. 其余的兄弟去掉背景颜色 隐式迭代
          $(this).siblings("button").css("background", "");
        });
      });
    </script>

    // 链式编程
    <script>
      $(function () {
        // 1. 隐式迭代 给所有的按钮都绑定了点击事件
        $("button").click(function () {
          // 2.当前元素变化背景颜色
          //   $(this).css("background", "pink");
          // 3. 其余的兄弟去掉背景颜色 隐式迭代
          //   $(this).siblings("button").css("background", "");
          //   我的颜色为红色,我的兄弟的颜色为空
          $(this).css("color", "red").siblings().css("color", "");
          //   我的兄弟的颜色为红色,我本身不变色
          //   $(this).siblings().css("color", "red");
          // 最后给我的兄弟的父亲body变化颜色
          $(this).siblings().parent().css("color", "blue");
        });
      });
    </script>

    // 淘宝服饰
    <script>
      $(function () {
        // 1.鼠标经过左侧的小li
        $("#left li").mouseover(function () {
          // 2.得到当前小li的索引号
          var index = $(this).index();
          console.log(index);
          // 3.让我们右侧的盒子相应索引号的图片显示出来就好了
          //   $("#content div").eq(index).show();
          // 4.让其余的图片隐藏起来
          //   $("#content div").eq(index).siblings().hide();
          // 使用链式编程
          $("#content div").eq(index).show().siblings().hide();
        });
      });
    </script>

jQuery 样式操作

    <script>
      // 操作样式之css方法
      $(function () {
        console.log($("div").css("width"));
        // $("div").css("width", "300px");
        // $("div").css("width", 300);
        // $("div").css("height", "300px"); // 属性名一定要加引号,属性值不一定
        $("div").css({
          width: 400,
          height: 400,
          backgroundColor: "red",
          // 如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号
        });
      });
    </script>

  

  <body>
    <div class="current"></div>
    <script>
      $(function () {
        // 1.添加类 addClass()
        // $("div").click(function () {
        //   $(this).addClass("current");
        // });
        // 2.删除类 removeClass()
        // $("div").click(function () {
        //   $(this).removeClass("current");
        // });
        // 3.切换类 toggleClass()
        $("div").click(function () {
          $(this).toggleClass("current");
        });
      });
    </script>
  </body>

    <script>
      $(function () {
        // 1.点击上部的li,当前li 添加current类,其余兄弟移除类
        $(".tab_list li").click(function () {
          // 链式编程的操作
          $(this).addClass("current").siblings().removeClass("current");
          // 2.点击的同时,得到当前li的索引号
          var index = $(this).index();
          console.log(index);
          // 3.让下部里面相应索引号的item显示,其余的item隐藏
          $(".tab_con .item").eq(index).show().siblings().hide();
        });
      });
    </script>

    <script>
      //   var one = document.querySelector(".one");
      //   one.className = "two";
      $(".one").addClass("two"); // 这个addClass相当于追加类名,不影响以前的类名
      $(".one").removeClass("two");
    </script>

 jQuery 效果 

  

但是如果快速滑动菜=菜单栏,多个地方就会出现动画效果,因为hover移动上去,出现的动画效果必须执行完成,动画都有排队的问题

        // 显示隐藏效果
        $(function () {
        $("button")
          .eq(0)
          .click(function () {
            $("div").show(1000, function () {
              {
                console.log("1");
              }
            });
          });
        $("button")
          .eq(1)
          .click(function () {
            $("div").hide(1000, function () {
              {
                console.log("2");
              }
            });
          });
        $("button")
          .eq(2)
          .click(function () {
            $("div").toggle(1000);
          });
        // 一般情况下,我们都不加参数直接显示隐藏就可以了



    // 滑动下拉菜单
    <script>
      $(function () {
        // 鼠标经过
        // $(".nav > li").mouseover(function () {
        //   // $(this) jquery 当前元素 this 不要加引号
        //   // show() 显示元素 hide() 隐藏元素
        //   $(this).children("ul").slideDown(200);
        // });
        // 鼠标离开
        // $(".nav > li").mouseout(function () {
        //   $(this).children("ul").slideUp(200);
        // });
        // 事件切换 hover 就是鼠标经过和离开的复合写法
        // $(".nav>li").hover(
        //   function () {
        //     $(this).children("ul").slideDown(200);
        //   },
        //   function () {
        //     $(this).children("ul").slideUp(200);
        //   }
        // );
        // 2.事件切换 hover 如果只写一个函数,那么鼠标经过和鼠标移开都会触发这个函数
        $(".nav>li").hover(function () {
          // stop 方法必须写到动画的前面
          $(this).children("ul").stop().slideToggle();
          //   这样写相当于停止动画
          $(this).children("ul").slideToggle().stop();
        });
      });
    </script>

   //淡入淡出效果
     <script>
        $(function() {
            $("button").eq(0).click(function() {
                // 淡入 fadeIn()
                $("div").fadeIn(1000);
            })
            $("button").eq(1).click(function() {
                // 淡出 fadeOut()
                $("div").fadeOut(1000);

            })
            $("button").eq(2).click(function() {
                // 淡入淡出切换 fadeToggle()
                $("div").fadeToggle(1000);

            });
            $("button").eq(3).click(function() {
                //  修改透明度 fadeTo() 这个速度和透明度要必须写
                $("div").fadeTo(1000, 0.5);

            });
        });
    </script>

    //实例
    <script>
      $(function () {
        // 鼠标进入的时候,其他的li标签透明度: 0.5
        $(".wrap li").hover(
          function () {
            $(this).siblings().stop().fadeTo(400, 0.5);
          },
          function () {
            // 鼠标离开,其他li 透明度改为1
            $(this).siblings().stop().fadeTo(400, 1);
          }
        );
      });
    </script>

    <script>
      $(function () {
        $("button").click(function () {
           //params 更改需要更改的属性
          $("div").animate(
            {
              left: 500,
              top: 300,
              opacity: 0.4,
              width: 300,
            },
            500
          );
        });
      });
    </script>

    <script type="text/javascript">
      $(function () {
        // 鼠标经过某个小li,有两步操作
        $(".king li").mouseenter(function () {
          // 1.当前小li宽度变为 224px, 同时里面的小图片淡出,大图片淡入
          $(this)
            .stop()
            .animate(
              {
                width: 224,
              },
              200
            )
            .find(".small")
            .stop()
            .fadeOut()
            .siblings(".big")
            .stop()
            .fadeIn();
          // 其余兄弟小li宽度变为 69px,小图片淡入,大图片淡出
          $(this)
            .siblings("li")
            .stop()
            .animate(
              {
                width: 69,
              },
              200
            )
            .find(".small")
            .stop()
            .fadeIn()
            .siblings(".big")
            .stop()
            .fadeOut();
        });
      });
    </script>

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

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

相关文章

HTML——41有序列表

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>有序列表</title></head><body><!--有序列表&#xff1a;--><!--1.列表中各个元素在逻辑上有先后顺序&#xff0c;但不存在一定的级别关系-->…

典型常见的基于知识蒸馏的目标检测方法总结二

来源&#xff1a;https://github.com/LutingWang/awesome-knowledge-distillation-for-object-detection收录的方法 NeurIPS 2017&#xff1a;Learning Efficient Object Detection Models with Knowledge Distillation CVPR 2017&#xff1a;Mimicking Very Efficient Networ…

计算机网络-L2TP VPN基础实验配置

一、概述 上次大概了解了L2TP的基本原理和使用场景&#xff0c;今天来模拟一个小实验&#xff0c;使用Ensp的网卡桥接到本地电脑试下L2TP拨号&#xff0c;今天主要使用标准的L2TP&#xff0c;其实在这个基础上可以加上IPSec进行加密&#xff0c;提高安全性。 网络拓扑 拓扑说明…

基于BiTCN双向时间卷积网络实现电力负荷多元时序预测(PyTorch版)

Bidirectional Temporal Convolutional Network \begin{aligned} &\text{\Large \color{#CDA59E}Bidirectional Temporal Convolutional Network}\\ \end{aligned} ​Bidirectional Temporal Convolutional Network​ Bidirectional Temporal Convolutional Network (BiTC…

Linux C/C++编程-网络程序架构与套接字类型

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 (jd.com…

北京某新能源汽车生产及办公网络综合监控项目

北京某新能源汽车是某世界500强汽车集团旗下的新能源公司&#xff0c;也是国内首个获得新能源汽车生产资质、首家进行混合所有制改造、首批践行国有控股企业员工持股的新能源汽车企业&#xff0c;其主营业务包括纯电动乘用车研发设计、生产制造与销售服务。 项目现状 在企业全…

【LeetCode】2506、统计相似字符串对的数目

【LeetCode】2506、统计相似字符串对的数目 文章目录 一、哈希表位运算1.1 哈希表位运算 二、多语言解法 一、哈希表位运算 1.1 哈希表位运算 每个字符串, 可用一个 int 表示. (每个字符 是 int 的一个位) 哈希表记录各 字符组合 出现的次数 步骤: 遇到一个字符串, 得到 ma…

gitlab 还原合并请求

事情是这样的&#xff1a; 菜鸡从 test 分支切了个名为 pref-art 的分支出来&#xff0c;发布后一机灵&#xff0c;发现错了&#xff0c;于是在本地用 git branch -d pref-art 将该分支删掉了。之后切到了 prod 分支&#xff0c;再切出了一个相同名称的 pref-art 分支出来&…

Uncaught ReferenceError: __VUE_HMR_RUNTIME__ is not defined

Syntax Error: Error: vitejs/plugin-vue requires vue (>3.2.13) or vue/compiler-sfc to be present in the dependency tree. 第一步 npm install vue/compiler-sfc npm run dev 运行成功&#xff0c;本地打开页面是空白&#xff0c;控制台报错 重新下载了vue-loa…

LeetCode--排序算法(堆排序、归并排序、快速排序)

排序算法 归并排序算法思路代码时间复杂度 堆排序什么是堆&#xff1f;如何维护堆&#xff1f;如何建堆&#xff1f;堆排序时间复杂度 快速排序算法思想代码时间复杂度 归并排序 算法思路 归并排序算法有两个基本的操作&#xff0c;一个是分&#xff0c;也就是把原数组划分成…

vim里搜索关键字

vim是linux文本编辑器的命令&#xff0c;再vi的基础上做了功能增强 使用方法如下 1. / 关键字, 回车即可, 按n键查找关键字下一个位置 2.? 关键字, 回车即可, 按n键查找关键字下一个位置 3.示例

自学记录鸿蒙API 13:Calendar Kit日历功能从学习到实践

这次的目标是学习和使用HarmonyOS的Calendar Kit功能&#xff0c;特别是最新的API 13版本。Calendar Kit让我感受到了一种与传统开发完全不同的体验——它提供的不只是简单的日历功能&#xff0c;而是一套集创建、查询、更新、删除等强大能力于一体的日程管理服务。 一开始&…

汽车损坏识别检测数据集,使用yolo,pasical voc xml,coco json格式标注,6696张图片,可识别11种损坏类型,识别率89.7%

汽车损坏识别检测数据集&#xff0c;使用yolo&#xff0c;pasical voc xml&#xff0c;coco json格式标注&#xff0c;6696张图片&#xff0c;可识别11种损坏类型损坏&#xff1a; 前挡风玻璃&#xff08;damage-front-windscreen &#xff09; 损坏的门 &#xff08;damaged-d…

2025年入职/转行网络安全,该如何规划?网络安全职业规划

网络安全是一个日益增长的行业&#xff0c;对于打算进入或转行进入该领域的人来说&#xff0c;制定一个清晰且系统的职业规划非常重要。2025年&#xff0c;网络安全领域将继续发展并面临新的挑战&#xff0c;包括不断变化的技术、法规要求以及日益复杂的威胁环境。以下是一个关…

如何使用 ChatGPT Prompts 写学术论文?

第 1 部分:学术写作之旅:使用 ChatGPT Prompts 进行学术写作的结构化指南 踏上学术写作过程的结构化旅程,每个 ChatGPT 提示都旨在解决特定方面,确保对您的主题进行全面探索。 制定研究问题: “制定一个关于量子计算的社会影响的研究问题,确保清晰并与您的研究目标保持一…

超大规模分类(一):噪声对比估计(Noise Contrastive Estimation, NCE)

NCE损失对应的论文为《A fast and simple algorithm for training neural probabilistic language models》&#xff0c;发表于2012年的ICML会议。 背景 在2012年&#xff0c;语言模型一般采用n-gram的方法&#xff0c;统计单词/上下文间的共现关系&#xff0c;比神经概率语言…

位置编码--RPE

相对位置编码 (Relative Position Encoding, RPE) 1. 相对位置编码 相对位置编码是 Transformer 中的一种改进位置编码方式&#xff0c;它的主要目的是通过直接建模序列中元素之间的相对位置&#xff0c;而不是绝对位置&#xff0c;从而更好地捕捉序列元素之间的依赖关系&#…

2024年12月31日Github流行趋势

项目名称&#xff1a;free-programming-books 项目地址url&#xff1a;https://github.com/EbookFoundation/free-programming-books项目语言&#xff1a;HTML历史star数&#xff1a;344575今日star数&#xff1a;432项目维护者&#xff1a;vhf, eshellman, davorpa, MHM5000, …

mysql下载安装及配置

基本操作参考&#xff1a;https://www.cnblogs.com/zhangkanghui/p/9613844.html ----------------------------------其余常见问题参考下面&#xff1a; 都需要管理员权限 输入命令查看端口号占用&#xff0c;然后kill掉

RoboMIND:多体现基准 机器人操纵的智能规范数据

我们介绍了 RoboMIND&#xff0c;这是机器人操纵的多体现智能规范数据的基准&#xff0c;包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…