lyt0612

导航

2022-08-26 第二组刘禹彤 学习笔记

打卡41天

###学习内容

JS库

  • 别人写好的JS文件,我们拿来直接用--------开发中会引入很多.js文件
  • JQery.js:濒临淘汰,经典,10%以下市场

React.js:30%市场

Angular.js:10%以下市场,最难

Vue.js:50%以上市场,简单,最主流

  • script标签,只可以做一件事情---要么导入js文件,要么写js代码

JQery.js

文档就绪函数

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

$(document).ready(function(){   })
//简写
$(function(){   })

选择器

  • 基本选择器

id选择器-----返回值是固定的1个元素


class选择器-----返回值是一堆

标签选择器------返回值是一堆

*号选择器------返回值是所有标签

  • 层级选择器

div p------div里面的p

div>p------直接子元素

div+p------相邻

  • 过滤选择器

xxx:first-------获取第一个元素

xxx:last--------获取最后一个元素

xxx:eq(index)-----获取给定位置的元素

xxx:gt(index)-----大于给定位置的元素

xxx:lt(index)-----小于给定位置的元素

xxx:not(selector)-----除了wselector以外的所有选择器

  • 内容选择器

xxx:empty----------匹配所有不包含子元素的元素

xxx:parent-------含有子元素的父元素

  • 属性选择器

[name]------包含name属性的元素

input{type=txt}----文本框

input{type!=txt}----除文本框的其它

事件

面试题:window.onload和$文档就绪函数的区别1.触发时间 JQery文档就绪函数:在页面加载完毕之后触发,浏览器解析完HTML标签 window.onload:解析完HTML标签,浏览器创建好DOM对象,显示的内容都加载完2.执行次数 JQuery文档就绪函数可以执行多次 window.onload只执行一次

标签操作

  • click()----------单击事件
  • blur()-----------失去焦点
  • mouseover()------鼠标悬停
  • live()-----------绑定选择器匹配的元素的事件,包括这个元素时候创建出来的

我们常规的添加事件,例如addEventListner;$().click()前提条件:标签必须原原本本的存在在 HTML页面-------live()除外,可以解决这个问题

  • appendTo--------参数是一个JQery元素,追加到xxx
  • preparedTo--------在之前追加
  • insertAfter---------在外部之后追加
  • insertBefore-------在外部之前追加
  • replaceWith-------替换
  • replaceAll--------------替换所有
  • append----------在内部的后面追加(被动->主动)
  • empty---------清空标签内的所有内容
  • remove-------删除指定内容

属性操作

  • html ====== innerHTML
//div内添加内容
$("#id").html("<xx>内容</xx>")
  • text ==========innerText
//div内添加内容
$("#id").text("内容")
  • val()========.value
<input type="text" id="username">
//取值
$("#id").val("内容")

val函数可以给文本框赋值,也可以操作单选框,复选框,下拉菜单的选中状态

  • 选择状态

选择固定属性的内容

赋值

       // 相当于setAttribute        
       $("#checkAll").click(()=> {
      // $("#swimming").val("swimming");                

取值

       // getAttribute
      // alert($("input[type=checkbox]").attr("value","sss"));
      // alert($("input[type=checkbox]").attr("checked"));
    alert($("input[type=checkbox]").prop("checked",true));
    alert($("#sheng").prop("selected"));
    $(() => {
       // $("#div1").text("<p>123</p>");
         $("#username").val("666"); })
            })              

操作CSS样式

  • 添加样式
  • 删除样式
  • 添加/删除样式
       .a{
                width: 200px;
                height: 200px;
                background-color: orange;
            }


        <button id="addStyle">添加样式</button>
        <button id="delStyle">删除样式</button>
        <button id="toggleStyle">添加 / 删除样式</button>
        <div id="div1">123123</div>
        <script src="js/jquery-1.9.1.js"></script>
        <script>
            $(()=> {
                $("#addStyle").click(() => {
                    $("#div1").addClass("a f");
                });
                $("#delStyle").click(() => {
                    $("#div1").removeClass("a f");
                });
                $("#toggleStyle").click(() => {
                    $("#div1").toggleClass("a f");
                });
            })
        </script>

操作多个样式,中间用空格隔开

动画

隐藏显示

  • 放大缩小
        <div class="a" id="div1"></div>
        <button id="btn1">隐藏</button>
        <button id="btn2">显示</button>
        <button id="btn3">隐藏 / 显示</button>


                $("#btn1").click(() => {
                    $("#div1").hide(5000));
                $("#btn2").click(() => {
                    $("#div1").show(5000);});
                $("#btn3").click(() => {
                    $("#div1").toggle();});
  • 淡入淡出
        <div class="a" id="div2"></div>
        <button id="btn4">隐藏</button>
        <button id="btn5">显示</button>
        <button id="btn6">隐藏 / 显示</button>
        <button id="btn7">透明</button>


                $("#btn4").click(() => {
                    $("#div2").fadeOut(5000);});
                $("#btn5").click(() => {
                    $("#div2").fadeIn(5000);});
                $("#btn6").click(() => {
                    $("#div2").fadeToggle();});
                $("#btn7").click(() => {
                    $("#div2").fadeTo(1000,0.2);});
  • 上拉下拉
        <div class="a" id="div3"></div>
        <button id="btn8">隐藏</button>
        <button id="btn9">显示</button>
        <button id="btn10">隐藏 / 显示</button>


                $("#btn8").click(() => {
                    $("#div3").slideUp(5000);});
                $("#btn9").click(() => {
                    $("#div3").slideDown(5000);});
                $("#btn10").click(() => {
                    $("#div3").slideToggle();});

###学习心得

今天学习了JS库中的JQery.js,了解了文档就绪函数以及其中的一些属性和标签操作,感觉知识点有点分散,需要理解消化一下

###掌握情况:一般

###课上练习

<!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>
        你爱好的运动是?
        <input type="checkbox" id="checkAllBox">全选 / 全不选
        <br>
        <br>
        <input type="checkbox" class="item" value="足球">足球
        <input type="checkbox" class="item" value="篮球">篮球
        <input type="checkbox" class="item" value="羽毛球">羽毛球
        <input type="checkbox" class="item" value="乒乓球">乒乓球
        <br>
        <br>
        <input type="button" value="全选" id="checkedAllBtn">
        <input type="button" value="全不选" id="checkedNoBtn">
        <input type="button" value="反选" id="checkedReverseBtn">


        <script src="js/jquery-1.9.1.js"></script>
        <script>
            $(()=>{
                // 给全选按钮绑定事件
                $("#checkedAllBtn").click(()=>{
                    // 选取所有带有checkbox这个属性的值的元素们
                    $(":checkbox").prop("checked",true);
                });
                // 全不选绑定事件
                $("#checkedNoBtn").click(()=>{
                    // 选取所有带有checkbox这个属性的值的元素们
                    $(":checkbox").prop("checked",false);
                });
                // 反选
                $("#checkedReverseBtn").click(()=>{
                    // 获取全部的复选框
                    // 遍历复选框
                    // 
                    // for(let i = 0;i < $(".item").length;i++) {
                    //     $(".item:eq("+i+")").prop("checked",!$(".item:eq("+i+")").prop("checked"));
                    // }
                    // JQuery的遍历操作
                    /*
                        参数1:index---遍历元素的下标
                        参数2:item----当前正在遍历的项,这个item是一个DOM对象
                    */
                    $(".item").each((index,item) => {
                        // 在each遍历的function中,有一个this对象,this就是当前正在遍历的dom对象(JS对象)
                        /* this指向的问题?如果使用ES6箭头函数,
                            this指向不是DOM,指向的是当前函数的调用者。
                        */
                        item.checked = !item.checked;
                    });
                     // 检查是否满选
                    // 获取全部的选项的个数
                    let allCount = $(".item").length;
                    // 在获取选中的个数
                    let checkedCount = $(".item:checked").length;
                        $("#checkAllBox").prop("checked",allCount == checkedCount);
                });

                
                // if(allCount == checkedCount) {
                //     $("#checkAllBox").prop("checked",true);
                // }else {
                //     $("#checkAllBox").prop("checked",false);
                // }
                
                $("#checkAllBox").click(() => {
                    $(".item").prop("checked",$("#checkAllBox").prop("checked"));
                });

                // 获取所有样式为.item的元素
                // 可以直接绑定事件
                $(".item").click(()=> {
                    
                    // 检查是否满选
                    // 获取全部的选项的个数
                    let allCount = $(".item").length;
                    // 在获取选中的个数
                    let checkedCount = $(".item:checked").length;
                        $("#checkAllBox").prop("checked",allCount == checkedCount);
                });
            })
        </script>
    </body>
</html>

###运行结果

 

 

posted on 2022-08-26 18:23  小仙女吖~  阅读(37)  评论(0编辑  收藏  举报