2022-08-26 卢睿 学习心得

1.JQuery

JS库:别人写好的js文件,我们拿来直接用

  • JQuery.js---------濒临淘汰,经典
  • React.js-----------30%市场占有
  • Augular.js--------最难
  • Vue.js--------------简单,主流

CSS库

  • bootstrap,layui,easyui

文档就绪函数

  • 当页面的文档部分加载完毕之后,要执行的函数

  •         $(document).ready(function(){
                alert("文档就绪函数");
            });
            $(function(){
                alert("文档就绪函数")
            })
    

选择器

基本选择器

  • id选择器——返回值是唯一的

    • <div id="div1"></div>
          <script>
              $(() =>{
                  let s =$("#div1");
                  console.log(s);
              });
          </script>
      
  • 类选择器——返回值是多个

    • <div id="div1" class="div1"></div>
          <script>
              $(() =>{
                  let s =$(".div1");
                  console.log(s);
              });
          </script>
      
  • 标签选择器——返回值是多个

    • <div id="div1" class="div1"></div>
          <script>
              $(() =>{
                  let s =$("div");
                  console.log(s);
              });
          </script>
      
  • 全部选择器——返回值是所有的标签

    •     <script>
              $(() =>{
                  let s =$("*");
                  console.log(s);
              });
          </script>
      

层级选择器

  • 父标签空格子标签——后代
  • 父标签>子标签——直接子元素
  • 父标签+子标签——相邻的

过滤选择器

  • 标签:first——获取第一个元素
  • 标签:last——获取最后一个元素
  • 标签:eq(index)——给定位置的元素
  • 标签:gt(index)——大于给定位置的元素
  • 标签:lt(index)——小于给定位置的元素
  • 标签:not(selector)——除了selector以外的所有选择器

内容选择器

  • 标签:empty——匹配所有不包含子元素的选择器
  • 标签:parent——含有子元素的父元素

属性选择器

  • 标签[name]——包含name属性的选择器
  • 标签[type=text]——文本框
  • 标签[type!=text]——除了文本框的其他选择器

事件

  • click()——单击事件

    •      <button id="btn1" >按钮</button>
          <script>
              $(function(){
                  $("#btn1").click(() =>{
                      alert("按钮被点击")
                  });
              })
          </script>
      
  • blur()——失去焦点

  • mouseover()——鼠标悬停

  • live()——可以来绑定选择器匹配的元素的事件,哪怕这个元素是后面动态创建出来的

  • 【我们常规的去添加事件有前提条件——标签必须原原本本存在HTML页面上】

函数

新建

  • appendTo():参数是一个JQuery元素,在元素里面追加,从尾部追加

    • $("<p>456</p>").appendTo($("div"));
      
  • prependTo():在元素里面追加,从头部追加

    •             $("<p>41356</p>").prependTo($("div"));
      
  • insertAfter():在元素后面追加

  • insertBefore():在元素前面追加

    •             $("<p>888</p>").insertBefore($("div"));
      
  • replaceWith():替换后边换前边

  • replaceAll():替换前边换后边

    • $("<p>888</p>").replaceAll($("#12"));
      
  • append():在内部的后面追加

    •             $("div").append($("<p>888</p>"));
      
  • prepend():在内部的前面追加

  • after():在外部的后面追加

  • before():在外部的前面追加

删除

  • empty():清空标签里的全部内容

  • remove():删除某一个标签

属性

  • 属性操作

    • html()——innerText

    • text()——innerHTML

    • val()——input.value

      •   <div id="div1"></div>
          <input type="text" id="username">
          <script>
              $(()=>{
               $("#div1").html("<p>1412</p>")
               $("#div1").text("1412")
               $("#username").val("666");
              })
          </script>
        
    • val函数除了可以给文本框赋值,还可以给单选框,多选框,下拉菜单的选择

    • attr()——setAttribute或getAttribute——【有bug】

      •                 // 设置value属性
                        $("#as").attr("value","哇哈哈哈哈");
                        // 获取value属性的值
                        alert( $("#as").attr("value"))
        
  • 练习

    • <!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="12.js"></script>
      </head>
      
      <body>
          <input type="checkbox" id="xz1"> 全选 / 不全选
          <br>
          <br>
          <input type="checkbox"  class="xz5">🏊‍1
          <input type="checkbox"  class="xz5">🤺2
          <input type="checkbox"  class="xz5">🏃‍3
          <input type="checkbox"  class="xz5">🏋️‍4
          <input type="checkbox"  class="xz5">🧘‍5
          <input type="checkbox"  class="xz5">🏇6
          <br>
          <br>
          <input type="button" value="全选" id="xz">
          <input type="button" value="不全选" id="xz2">
          <input type="button" value="反选" id="xz3">
      
          <script>
              $("#xz").click(() => {
                  $("input[type=checkbox]").prop("checked", true)
              })
              $("#xz2").click(() => {
                  $("input[type=checkbox]").prop("checked", false)
              })
              $("#xz1").click(() => {
                  if ($("#xz1").prop("checked")) {
                      $("input[type=checkbox]").prop("checked", true)
                  } else {
                      $("input[type=checkbox]").prop("checked", false)
                  }
              })
              $("#xz3").click(() => {
                  let a = 0;
                  let index = 1;
                      while ($("input[type=checkbox]:eq(" + index+ ")").prop("checked") != undefined) {
                      if ($("input:eq(" + index + ")").prop("checked")) {
                          $("input:eq(" + index + ")").prop("checked", false)
                      } else {
                          $("input:eq(" + index + ")").prop("checked", true)
                          a++;
                      }
                      index++;
                  }
                  if (a == 6) {
                      $("#xz1").prop("checked", true)
                  } else {
                      $("#xz1").prop("checked", false)
                  }
              })
              $(".xz5").click(() => {
                  let index = 1;
                      while ($("input[type = checkbox]:eq(" + index+ ")").prop("checked") != undefined) {
                      if (!$("input:eq(" + index + ")").prop("checked")) {
                          $("#xz1").prop("checked", false)
                          return;
                      }
                      index++;
                      $("#xz1").prop("checked", true)
                  }
              })
          </script>
      </body>
      
      </html>
      

遍历

            // jQuery遍历操作
            $(".xz5").each(function (){
                // 在each遍历的function中.有一个this对象
                // this就是当前正在遍历的dom对象(JS对象)
                this.checked = !this.checked
            });
  • this指向的问题
    • 如果使用ES6的箭头函数,this指向的不是DOM,指向当前函数的调用者(BOM)

操作CSS

    <button id="styles1">添加样式</button>
    <button id="styles2">删除样式</button>
    <button id="styles3">添加/删除</button>
    <div id="div1">fsafsa</div>
    <script>
        $(() =>{
            $("#styles1").click(() =>{
                // 添加样式
                $("#div1").addClass("a f");
            })
            $("#styles2").click(() =>{
                // 删除样式
                $("#div1").removeClass("a f");
            })
            $("#styles3").click(() =>{
                // 切换样式
                $("#div1").toggleClass("a f");
            })
        })
    </script>

动画

<!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="12.js"></script>
    <style>
        .a{
            width: 200px;
            height: 200px;
            background-color: orange;
        }
        .f{
            font-size: 50px;
        }
    </style>
    <!-- JQuery -->
    <script src="12.js"></script>
</head>

<body>
    <button id="di">隐藏</button>
    <button id="di1">显示</button>
    <button id="di2">隐藏/显示</button>
    <div id="div1" class="a">fsafsa</div>
    <hr>
    <button id="di3">隐藏</button>
    <button id="di4">显示</button>
    <button id="di5">隐藏/显示</button>
    <button id="di6">透明</button>
    <div id="div2" class="a">fsafsa</div>
    <hr>
    <button id="di7">下来</button>
    <button id="di8">上去</button>
    <button id="di9">下来/上去</button>
    <div id="div3" class="a">fsafsa</div>

    <script>
        $(()=>{
            $("#di").click(()=>{
                $("#div1").hide(5000,() =>{
                    alert("div已经隐藏了")
                })
            });
            $("#di1").click(()=>{
                $("#div1").show(5000,() =>{
                    alert("div已经显示了")
                })
            });
            $("#di2").click(()=>{
                $("#div1").toggle(5000)
            });

            $("#di3").click(()=>{
                $("#div2").fadeOut(5000)
            });
            $("#di4").click(()=>{
                $("#div2").fadeIn(5000)
            });
            $("#di5").click(()=>{
                $("#div2").fadeToggle(5000)
            });
            $("#di6").click(()=>{
                $("#div2").fadeTo(2000,0.9)
            });

            $("#di7").click(()=>{
                $("#div3").slideUp(2000)
            });
            $("#di8").click(()=>{
                $("#div3").slideDown(2000)
            });
            $("#di9").click(()=>{
                $("#div3").slideToggle(2000)
            });
        })
    </script>

</body>

</html>

面试题

  • window.onload与文档就绪函数有什么区别,分别在什么时候触发
    • window.onload除了解析完HTML标签之外,还要等到浏览器创建好DOM对象——是BOM
    • JQuery文档就绪函数在页面加载完毕之后触发浏览器解析完HTML标签就能触发——是DOM
    • JQuery文档就绪函数能执行多次
    • window.onload只能执行一次
  • ArrayList:
    • 基于数组的连续内存
    • 可以利用CPU的缓存
  • OA HR cms mis 系统
posted @ 2022-08-26 21:27  LegendR  阅读(43)  评论(0)    收藏  举报