js和jQuery知识点总结

目录

一.jQuery知识点梳理

1.jQuery入门&选择器

      案例1  表格隔行换色

二.$工具方法&属性&CSS

案例2:实现全选功能

三.筛选&过滤&位置

案例3.实现返回顶部功能

四.事件&效果

二.JavaScript知识点梳理

一.js核心语法

二.函数和window对象

1、函数

2、window对象

案例①图片自动切换

三.BOM编程

1、访问页面元素的三种方式

案例③树型菜单

四.DOM编程

一.操作节点( 增删改查 )

二.动态操作表格(注意层级关系)

一.行 row

二.列 cell

案例④掌握节点的增删改查

五.JavaScript和CSS的交互

一.两种方式实现交互

案例⑤制作随鼠标滚动的广告图片

案例⑥实现表格的高亮效果

六.表单验证

  一.String的诸多方法

二.正则表达式

三.提示两种方式

七.省市级联&数组的遍历

案例⑦省级联动


一.jQuery知识点梳理

1.jQuery入门&选择器

  1. 3W1H
  2. 选择器

2.1.基本选择器:#id .class 元素 *通配符

2.2.层次选择器:逗号, 空格 大于> 波浪~ 加号+

2.3.过滤选择器:  :first :last :eq :gt :lt :even :odd

2.4.表单选择器: :radio :checkbox :checked :selected

      案例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>隔行换色</title>
    <style>
        .aa{
            background-color: aqua;
        }
        .bb{
            background-color: deeppink;
        }
    </style>
</head>
<body>
    <table border="1px" width="400px">
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
    </table>
</body>
<script src="jquery-3.6.4.js"></script>
<script>
//隔行换色
 $("table tr:even").addClass("aa");
 $("table tr:odd").addClass("bb");
</script>
</html>

二.$工具方法&属性&CSS

  1. 1.$.each $.trim $.type $.isArray $.isFunction $.parseJSON
  2. 2.attr() prop()  addClass() removeAttr() removeClass() val() text() html()
  3. 3.css("属性","属性值") css({"属性":"属性值","属性":"属性值"})

案例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>全选</title>
</head>
<body>
    <input type="checkbox"  id="qx"/>全选
    <input type="checkbox" class="bb" />打小灰灰
    <input type="checkbox" class="bb" />SB小辉辉
    <input type="checkbox" class="bb"/>听歌
    <input type="checkbox" class="bb"/>看电视
</body>
<script src="jquery-3.6.4.js"></script>
<script>

 $(function(){
    $("#qx").click(function(){
        $(".bb").prop("checked",$(this).prop("checked"));
    })
 })

 $(".bb").click(function(){
    let f = true;
    $(".bb").each(function(i,pp){
        if(pp.checked==false){
            f=false;
        }
    })
    $("#qx").prop("checked",f);
 })

</script>
</html>

三.筛选&过滤&位置

  1. 查  first() last() eq() prevAll() nextAll() siblings() find() children() filter() has() not()
  2. 增 append()/appendTo() prepend()/prependTo()  after()/before()
  3. 删  empty() remove()
  4. 改 replaceWith()

案例3.实现返回顶部功能

<!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>$工具方法&&jQuery属性&CSS</title>
    <!-- 引入外部js -->
    <script src="jquery-3.6.4.js"></script>
    <!-- 另起一个script块  -->
    <script>

    $(function(){

      // 获取滚动条位置  返回顶部案例
           $("#btn").click(function () {

            //设置值  返回顶部
            $("body,html").scrollTop(0);
            })
})
<script/>
<head/>
<body>
<input type="button" value="返回顶部" id="btn" />
<body/>

四.事件&效果

  1. 事件 .on/bind("事件名",callback)  .事件名(callback)  one() off/unbind解绑事件
  2. 合成事件:hover(function(){移上},function(){移出})   toggle()点击切换合成事件
  3. 效果 show(时间,callback) hide() toggle()  slideDown/slideUp slideToggle fadeIn/fadeOut/fadeToggle  xx.animat({属性:属性值,....},time)

案例4.合成事件控制显示和隐藏

<!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>显示和隐藏</title>
</head>
<body>
   <a href="#">显示</a><br/>
   <img src="img/3.jpg"  width="200px" id="oo"/>
</body>
<script src="jquery-3.6.4.js"></script>
<script>
//显示和隐藏
$(function(){
    $("a").hover(function(){
        $("#oo").show();//显示
    },function(){
        $("#oo").hide();//隐藏
    })
})

</script>
</html>

二.JavaScript知识点梳理

一.js核心语法

变量的声明?  数据类型?  运算符?  3种弹框? 

  1. number string boolean null undefined object array
  2. /只做除法 不做取整 除得尽就是整数 除不尽就是小数 
  3. alert(消息) confirm(询问) prompt(输入)
  4. console.log/info() F12 开发者模式输出  typeof()返回数据类型
  5. document.write() 类似于sout

二.函数和window对象

1、函数

  1. 常用系统函数  parseInt 将字符串--->整数  parseFloat 将字符串--->小数  isNaN 判断是否是非数字 数字:false 非数字:true
  2. 自定义函数  

         2.1.如何带参?   a,b,c

         2.2.返回  return 

      3.匿名函数  window.οnlοad=function(){}

2、window对象

  1. 属性  location  href/reload            history   back/forward/go()
  2. 方法   open      close       setInterval       setTimeout
  3. 事件  onclick     onmouseover     onmouseout     onload     onchange     onscroll

案例①图片自动切换

<!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>案例一:图片自动切换</title>
    <script>
     let i=5;
     function mya(){
        //获取图片id
        let myy=document.getElementById("aa");
        //获取图片路径
        myy.src="img/"+i+".jpg";
        i++;
        if(i==6){
            i=1;
        }
     }

     //页面载入
     window.onload=function(){
        setInterval(() => {
            mya();
        }, 1000);
     }

    </script>
</head>
<body>
       
      <img src="img/1.jpg" width="200px" id="aa"/>
</body>
</html>

案例②时钟特效

<!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>时钟特效</title>

    <script>
        function myf( ){
            //拿到系统的当前时间
            let d = new Date( );
            //如果要赋值  d.setye
         
            //单独拿年月日时分秒
            let y = d.getFullYear( );
            let m = d.getMonth( )+1;
            // let r = d.getDay( );//day是星期数
            let r = d.getDate( );//日
            let h = d.getHours( );
            let f = d.getMinutes( );
            let s = d.getSeconds( );

            let str = y+"年"+m+"月"+r+"日"+" "+h+":"+f+":"+s;
            //给div赋值
            document.getElementById("time").innerHTML=str;

            // 方法二:
            //调用自己的方法   递归
            setTimeout("myf( )",1000);

        }
      //  方法一:定时器
        // function mys( ){
        //     //每隔1s调用一次myf( )  单位: 毫秒
        //     //setInterval("myf( )",1000);

        //方法二:递归
        //     //1s后调用一次myf( )
        //     setTimeout( "myf( )",1000);
        // }

        //方法一:
        //在body内容加载完毕后自动调用mys( )
        //  window.onload=mys;

        //方法二:
        window.onload=myf;

    </script>
    

</head>
<body>
        <div id="time"></div>
</body>
</html>

三.BOM编程

1、访问页面元素的三种方式

1.1.getElementById 通过id找到元素

1.2.getElementsByName 通过名字找一堆元素 返回数组

1.3.getElementsByTagName 通过标签名找到一堆元素 返回数组

2、控制元素的显示和隐藏   xx.style.display="none/block" 隐藏/显示

案例③树型菜单

<!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>树型菜单</title>
    <style>
        li{list-style: none;}/*去点*/
        a{text-decoration: none;}/*去除下划线*/
        a:link{color: chartreuse;}/*未访问*/
        a:hover{color: pink;}/*鼠标移上*/
    </style>
    <script>
        function myf(id){
            //根据id拿到ul块
            let bb=document.getElementById(id);
            //如果之前是隐藏的
            if(bb.style.display=="none"){
                //让其显示
                bb.style.display="block";
            }
            else{//如果它是显示的  就隐藏
                bb.style.display="none";
            }
            
        }
    </script>
</head>
<body>
    <div>
        <li><a href="javascript:myf('aa')">美女群</a></li>
        <ul style="display: none;" id="aa">
            <li>瑶瑶</li>
            <li>欣欣</li>
            <li>(宝ᴗ宝)</li>
        </ul>

        <li><a href="javasrcipt:myf('cc')">帅哥群</a></li>
        <ul style="display: none;" id="cc">
            <li>小红花</li>
            <li>懒洋洋</li>
            <li>小灰灰</li>
        </ul>
    </div>
</body>
</html>

四.DOM编程

一.操作节点( 增删改查 )

  1. 查  firstChild lastChild childNodes(子节点们) getAttribute() 根据属性名拿到属性值  setAttribute() 给指定属性名设置属性值
  2. 增   createElement
  3. 删  removeChild
  4. 改 replaceChild
  5. 复制 cloneNode
  6. 位置  insertBefore 插入到...之前     appendChild 追加到最后

二.动态操作表格(注意层级关系)

一.行 row

        1.tab.insertRow(位置)

        2.tab.deleteRow(行下标)

        3.row.rowIndex 拿到其行下标

        4.tab.rows 拿到所有的行

二.列 cell

  1. row.insertCell(下标)
  2. c0.innerHTML=""
  3. row.deleteCell()
  4. row.cells 拿到所有的列

案例④掌握节点的增删改查

<!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>节点的增删改查</title>

    <script>
        function myc(){//查看
            //根据id找到图片
            let myi=document.getElementById("aa");
            //根据属性名得到属性值
            // let mpath=myi.getAttribute("src");//拿到图片路径
            // let mwidth=myi.getAttribute("width");
            // alert(mwidth);
            // alert(mpath);
        }

        function myz(){//增加
            //根据id找图片
            let myi=document.getElementById("aa");
            //创建图片节点
           let newImg=document.createElement("img");
           //给图片赋值 src width
           newImg.setAttribute("src","img/照片.jpg");
           newImg.setAttribute("width","300px");
           //把该图片插入到myi的前面
           document.body.insertBefore(newImg,myi);
        }

        function myf(){//克隆
            //根据id找到图片
            let myi=document.getElementById("aa");
            //克隆节点 是否连同子节点一同克隆
            let copyImg=myi.cloneNode(false);
            追加到文档的最后面
            document.body.appendChild(copyImg);
        }
        
        function myq(){//删除
            //根据id找到图片
            let myi=document.getElementById("aa");
            //移除掉
            document.body.removeChild(myi);
        }

        function myt(){
            //根据id找图片
            let oldImg=document.getElementById("aa");
            //创建新的图片节点
            let newImg=document.createElement("img");
            //给该节点设置路径和宽度
            newImg.setAttribute("src","img/壁纸01.jpeg");
            newImg.setAttribute("width","300px");
            //用新的节点去替换旧的节点
            document.body.replaceChild(newImg,oldImg);
        }
    </script>

</head>
<body>
    <img src="img/1111.jpg" width="200px" id="aa"/>
    <input type="button" value="查看" onclick="myc()" />
    <input type="button" value="增加" onclick="myz()"/>
    <input type="button" value="克隆" onclick="myf()"/>
    <input type="button" value="删除" onclick="myq()"/>
    <input type="button" value="替换" onclick="myt()"/>
</body>
</html>

五.JavaScript和CSS的交互

一.两种方式实现交互

  1. className属性方式
  2. style属性方式

二.随鼠标滚动的广告图片

  1. scrollLeft/scrollTop

案例⑤制作随鼠标滚动的广告图片

<!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>
    <!-- position:fixed  让图片滚动!!! -->
    <div style="position:fixed">
        <img src="img/壁纸1.png" width="100px"/>
    </div>
    <div>
        <img src="img/壁纸2.jpeg" width="200px"/>
    </div>
    <div>
        <img src="img/壁纸3.png" width="300px"/>
    </div>
    <div>
        <img src="img/壁纸4.jpg" width="300px"/>
    </div>
    <div>
        <img src="img/壁纸5.jpeg" width="300px"/>
    </div>
</body>
</html>

案例⑥实现表格的高亮效果

<!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>实现表格的高亮效果</title>
    <style>
        /* 第一种方式 */
        .aa{
            background-color: aquamarine;
        }
        .bb{}
    </style>
    <script>
        // //第二种方式
        // window.onload=function( ){
        //     //一次性拿到所有标签
        //     let ts = document.getElementsByTagName("tr");
        //     //遍历
        //     for(let i=0;i<ts.length;i++){
        //         // ts[i] 每一行
        //         ts[i].onmouseover=function( ){
        //             this.style.backgroundColor="pink";
        //         }
        //         ts[i].onmouseout=function( ){
        //             this.style.backgroundColor="white";
        //         }
        //     }
        // }

        window.onload=function( ){
            //一次性拿到所有标签
            let ts=document.getElementsByTagName("tr");
            //遍历
            for(let i =0;i<ts.length;i++){
                //ts[i]
                ts[i].onmouseenter=function(){
                    this.style.backgroundColor="pink";
                }
                ts[i].onmouseout=function(){
                    this.style.backgroundColor="yellow";
                }
            }
        }
        
    </script>
</head>
<body>
      <!--  第一种方式:  className  js和Css交互  this:当前这一行-->
      <!-- <tr onmouseover="thisq.className='aa'" onmouseout="this.className='bb'"> -->
    <table border="1px" width="400px">
        <tr >
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
    </table>
</body>
</html>

六.表单验证

  一.String的诸多方法

  1. length 长度
  2. charAt() 指定下标的字符
  3. substring/substr 截取
  4. indexOf 找元素第一次出现的位置

二.正则表达式

  1. /^正则$/
  2. test()

三.提示两种方式

  1. alert()
  2. 右侧显示   失焦 onblur()   获得焦点 onfocus()  表单提交事件 onsubmit() return

七.省市级联&数组的遍历

  1. onchange下拉框的改变事件
  2. add(new Option(text,value))
  3. 二维数组的遍历

案例⑦省级联动

	var cityList = new Array();
	cityList['北京市'] = ['朝阳区', '东城区', '西城区', '海淀区', '宣武区', '丰台区', '怀柔', '延庆', '房山'];
	cityList['上海市'] = ['宝山区', '长宁区', '丰贤区', '虹口区', '黄浦区', '青浦区', '南汇区', '徐汇区', '卢湾区'];
	cityList['广州省'] = ['广州市', '惠州市', '汕头市', '珠海市', '佛山市', '中山市', '东莞市'];
	cityList['深圳市'] = ['福田区', '罗湖区', '盐田区', '宝安区', '龙岗区', '南山区', '深圳周边'];
	cityList['重庆市'] = ['俞中区', '南岸区', '江北区', '沙坪坝区', '九龙坡区', '渝北区', '大渡口区', '北碚区'];
	cityList['天津市'] = ['和平区', '河西区', '南开区', '河北区', '河东区', '红桥区', '塘古区', '开发区'];
	cityList['江苏省'] = ['南京市', '苏州市', '无锡市'];
	cityList['浙江省'] = ['杭州市', '宁波市', '温州市'];
	cityList['四川省'] = ['四川省', '成都市'];
	cityList['海南省'] = ['海口市'];
	cityList['福建省'] = ['福州市', '厦门市', '泉州市', '漳州市'];
	cityList['山东省'] = ['济南市', '青岛市', '烟台市'];
	cityList['江西省'] = ['江西省', '南昌市'];
	cityList['广西省'] = ['柳州市', '南宁市'];
	cityList['安徽省'] = ['安徽省', '合肥市'];
	cityList['河北省'] = ['邯郸市', '石家庄市'];
	cityList['河南省'] = ['郑州市', '洛阳市'];
	cityList['湖北省'] = ['武汉市', '宜昌市'];
	cityList['湖南省'] = ['湖南省', '长沙市'];
	cityList['陕西省'] = ['陕西省', '西安市'];
	cityList['山西省'] = ['山西省', '太原市'];
	cityList['黑龙江省'] = ['黑龙江省', '哈尔滨市'];
	cityList['其他'] = ['其他'];


	//验证地区  二级联动

	//初始化省份下拉框的数据   
	let initSf = () => {
		//获取省份下拉框的id
		let sf = $("province");
		//循环数组cityList    element:不能代表每一个省份   下标才能代表省份   i代表下标
		for (i in cityList) {
			sf.add(new Option(i));
		}
	};

	//改变城市下拉框的数据
	let changeCs = () => {
		let f = false;
		//获取城市下拉框的id
		let cs = $("city");
		//清除城市下拉框里面原来的数据
		cs.length = 0;
		//获取所选择省份的id下拉框的内容值
		let sf = $("province").value;
		//给城市下拉框添加数据
		for (i in cityList) {//  i  代表省份
			if (i === sf) {//确定所选择的省份   所选择的内容和文本框的一致
				f = true;
				for (j in cityList[i]) {// cityList[i]  每一个省份所对应的城市数组   j代表城市数组的下标
					//给城市下拉框添加数据  new Option:
					cs.add(new Option(cityList[i][j]));// cityList[i][j]  城市数组的每一个值
				}
			}
		}
		if (f === false) {
			cs.add(new Option('--请选择城市--'));
		}
	}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑶大头*^_^*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值