JQuery3基础

jquery3基础

案例一:使用JQuery完成页面定时弹出广告

一、需求分析

  • 进入页面3s后弹出广告,3s后广告隐藏

二、技术分析

1.JQ概述
1.1 jQuery的概述

​ jQuery是一个优秀的javascript的轻量级框架,兼容css3和各大浏览器,提供了dom、events、animate、ajax
等简易的操作。并且jquery的插件非常丰富,大多数功能都有相应的插件解决方案。jquery的宗旨是write less do more。

​ 说白了: JQ就是js库, 封装了JS常见的操作,我们使用起来更加的简单

1.2 jQuery的作用

​ jQuery最主要的作用是简化js的Dom树的操作

1.3 jQuery框架的下载

​ jQuery的官方下载地址:http://www.jquery.com

1.4 jQuery的版本
  • 1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)

  • 2.x:不兼容IE678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4

  • 3.x:不兼容IE678,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本

    注:开发版本与生产版本,命名为jQuery-x.x.x.js为开发版本,命名为jQuery-x.x.x.min.js为生产版本,开发版本源码格式良好,有代码缩进和代码注释,方便开发人员查看源码,但体积稍大。而生产版本没有代码缩进和注释,且去掉了换行和空行,不方便发人员查看源码,但体积很小

2.jq入门
  • 把jq库导入到我们项目下,在html页面使用 <script>导入。

    <script type="text/javascript" src="jquery-x.x.x.js></script>
    
  • 代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF‐8">
    <title>Insert title here</title>
    <!‐‐ 引入jQuery ‐‐>
    <script type="text/javascript" src="../js/jquery‐3.3.1.js"></script>
    <!‐‐ 测试jQuery ‐‐>
    <script type="text/javascript">
      $(function(){
      alert("jQuery引入成功....");
      });
    </script>
    </head>
    <body>
    </body>
    </html>
    

注: 没有导入JQuery库会出现如下bug:
在这里插入图片描述

3.jQuery对象和JS对象转换【重点】

​ jQuery本质上虽然也是js,但如果使用jQuery的属性和方法那么必须保证对象是jQuery对象而不是js方式获得的DOM对象。使用js方式获取的对象是js的DOM对象,使用jQuery方式获取的对象是jQuery对象。两者的转换关系如下:

js对象: dom对象; document.getElement()获得的, 数组,date…
​jq对象: 通过JQ的方式来获得的对象

  • js的DOM对象转换成jQuery对象,语法:$(js对象)

  • jQuery对象转换成js对象,语法:jquery对象[索引] 或 jquery对象.get(索引); 一般索引写0

4.jq中事件的使用

在这里插入图片描述

4.1 基本事件的使用
  • 事件在jq里面都封装成了方法. 去掉了JS里面on. 语法:
jq对象.事件方法名(function(){}); eg: 点击:  jq对象.click(function(){});
  • 点击事件
<body>
    <input id="btnId" type="button" value="点我吧" />
</body>

<script>
    //jq对象.click(function(){})
    $("#btnId").click(function () {
        alert("hello...");
    });
</script>
  • 获得焦点和失去焦点
<body>
    <input id="inputId"  type="text" value="hello.."/>
</body>

<script>
    //jq对象.focus(function(){})  获得焦点事件
    //this就是当前对象(是JS对象), 谁获得了焦点this就是谁
    $("#inputId").focus(function () {
        //this ----> document.getElementById("inputId");
        console.log("获得了焦点..."+this.value);
    });

    //jq对象.blur(function(){})  失去焦点事件
    $("#inputId").blur(function () {
        console.log("失去了焦点...");
    });
</script>
  • 内容改变事件
<body>
    <select id="starSelectId">
        <option value="Jordan">乔丹</option>
        <option value="James">詹姆斯</option>
        <option value="Kobe">科比</option>
        <option value="Iverson">艾弗森</option>
    </select>
</body>

<script>
    //jq对象.change(function(){}) 内容改变事件
    $("#starSelectId").change(function () {
        console.log("内容改变了..."+this.value);
    });
</script>
  • 鼠标相关的事件
<body>
    <div  id="divId"></div>
</body>

<script>
    // jq对象.mouseenter()  鼠标进入
    $("#divId").mouseenter(function () {
        //this.style.backgroundColor = "red";
        $(this).css("backgroundColor","red");   //把js对象转成了jq对象
    });

    // jq对象.mouseout()  鼠标离开
    $("#divId").mouseout(function () {
        //this.style.backgroundColor = "blue";
        $(this).css("backgroundColor","blue");
    });
</script>
  • 键盘相关事件
<body>
    <input id="inputId" type="text"/>
</body>

<script>
    //  jq对象.keydown()  键盘按下
    $("#inputId").keydown(function () {
        console.log("键盘按下...");
    });

    //  jq对象.keyup()  键盘抬起
    $("#inputId").keyup(function () {
        console.log("键盘抬起...");
    });
</script>
4.2jQuery的事件绑定与解绑
  • 事件的绑定
jQuery元素对象.on(事件类型,function(){});

其中:事件名称是jQuery的事件方法的方法名称,例如:click、mouseover、mouseout、focus、blur等
  • 事件的解绑
jQuery元素对象.off(事件名称);

其中:参数事件名称如果省略不写,可以解绑该jQuery对象上的所有事件
  • 实例代码
<body>
    <input id="btnId" type="button" value="点我吧" /><br/>
    <input id="btnId02" type="button" value="解绑点我吧按钮的点击事件" /><br/>
</body>

<script>
    //jq对象.click(function(){})
    $("#btnId").click(function () {
        alert("hello...");
    });

    //jq对象.on(事件,function(){}) eg: 点击 jq对象.on("click",function(){})
   /* $("#btnId").on("click",function () {
       alert("hello word...");
    });*/

    $("#btnId02").on("click",function () {
        //解绑 btnId 的点击事件  jq对象.off("事件");
        $("#btnId").off("click");
    });
</script>
4.3事件切换
  • 普通写法
<script type="text/javascript">
	$(function() {
		$("#myDiv").mouseover(function() {
			$(this).css("background", "green");
		});
		$("#myDiv").mouseout(function() {
			$(this).css("background", "red");
		});
	});
</script>
  • 链式写法
<script type="text/javascript">
	$(function() {
		$("#myDiv").mouseover(function() {
			$(this).css("background", "green");
		}).mouseout(function() {
			$(this).css("background", "red");
		});
	});
</script>
5.jq动画
5.1基本效果
  • 方法
方法名称解释
show([speed,[easing],[fn]])显示元素方法
hide([speed,[easing],[fn]])隐藏元素方法
toggle([speed],[easing],[fn])切换元素方法,显示的使之隐藏,隐藏的使之显示
  • 参数
参数名称解释
speed三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
easing用来指定切换效果,默认是"swing",可用参数"linear"
fn在动画完成时执行的函数,每个元素执行一次
  • 实例
<input type="button" value="show()" id="btn1" />
<input type="button" value="hide()" id="btn2" />
<input type="button" value="toggle()" id="btn3" />
<br />
<div id="div1" style="width: 100px; height: 100px; border: 1px solid red;"></div>
<script>
	$("#btn1").click(function() {
		$("#div1").show(1000);
	});

	$("#btn2").click(function() {
			$("#div1").hide(1000,function(){
				alert("Bye...");
			});
	});
	
	$("#btn3").click(function() {
		$("#div1").toggle();
	});
</script>
5.2滑动效果
  • 方法
方法名称解释
slideDown([speed,[easing],[fn]])向下滑动方法
slideUp([speed,[easing],[fn]])向上滑动方法
slideToggle([speed],[easing],[fn])切换元素方法,显示的使之隐藏,隐藏的使之显示
  • 参数
参数名称解释
speed三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
easing用来指定切换效果,默认是"swing",可用参数"linear"
fn在动画完成时执行的函数,每个元素执行一次
5.3 淡入淡出效果
  • 方法
方法名称解释
fadeIn([speed,[easing],[fn]])淡入显示方法
fadeOut([speed,[easing],[fn]])淡出隐藏方法
fadeToggle([speed],[easing],[fn])切换元素方法,显示的使之隐藏,隐藏的使之显示
  • 参数
参数名称解释
speed三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)
easing用来指定切换效果,默认是"swing",可用参数"linear"
fn在动画完成时执行的函数,每个元素执行一次

三,思路分析

  • 创建这个页面,在logo上面添加一个广告区域,并且隐藏

  • 导入JQ库

  • 创建定时任务,显示广告

    setTimeout("showAd()",3000);
    
  • 创建showAd()函数

    function showAd(){
      	//1. 获得广告div区域, 展示
      	//2.再创建定义任务进行隐藏 setTimeout("hideAd()",3000);
    }
    
  • 创建hideAd()函数

    function hideAd(){
      	//1. 获得广告div区域, 隐藏
    }
    
四,代码实现
<script>
    //创建定时任务,显示广告
    setTimeout("showAd()",3000);

    //创建showAd()函数
    function showAd() {
        //1.获得广告div对象
        var $adObj =   $("#adDiv");

        //2.调用show()方法展示
        $adObj.show(3000,function () {
            //3.再创建定时任务,3s之后隐藏 setTimeout("hideAd()",3000);
            setTimeout("hideAd()",3000);
        });
    }
    //创建hideAd()函数
    function hideAd() {
        //1.获得广告div对象
        var $adObj =   $("#adDiv");
        //2.调用hide()方法隐藏
        $adObj.hide(3000);
    }
</script>

五,选择器总结

​ 选择器的作用: 得到标签对象, 获得就是JQ对象

1.基本选择器【重点】
  • 语法
选择器名称语法解释
标签选择器(元素选择器)$(“html标签名”)获得所有匹配标签名称的于元素
id选择器$("#id的属性值")获得与指定id属性值匹配的元素
类选择器$(".class的属性值")获得与指定的class属性值匹配的元素
2 层级选择器
  • 语法
选择器名称语法解释
后代选择器$("A B ")选择A元素内部的所有B元素
子选择器$(“A > B”)选择A元素内部的所有B子元素
兄弟选择器$(“A + B”)获得A元素同级的下一个B元素
兄弟选择器$(“A ~ B”)获得A元素同级的所有B元素
3 属性选择器
  • 语法
选择器名称语法解释
属性选择器$(“A[属性名]”)包含指定属性的选择器
属性选择器$(“A[属性名=值]”)包含指定属性等于指定值的选择器
4.基本过滤选择器
  • 语法
选择器名称语法解释
首元素选择器:first获得选择的元素中的第一个元素
尾元素选择器:last获得选择的元素中的最后一个元素
非元素选择器:not(selecter)不包括指定内容的元素
偶数选择器:even偶数,从 0 开始计数
奇数选择器:odd奇数,从 0 开始计数
等于索引选择器:eq(index)指定索引元素
大于索引选择器:gt(index)大于指定索引元素
小于索引选择器:lt(index)小于指定索引元素
5.表单属性选择器
  • 语法
选择器名称语法解释
可用元素选择器:enabled获得可用元素
不可用元素选择器:disabled获得不可用元素
选中选择器:checked获得单选/复选框选中的元素
选中选择器:selected获得下拉框选中的元素

案例二使用JQuery完成表格的隔行换色

一、需求分析

在这里插入图片描述

二、技术分析

1.jQuery操作CSS样式
API方法解释
css(name)获取CSS样式
css(name,value)设置CSS样式
<body>
    <div id="divId" style="width: 100px;height: 100px;background-color: red"></div>
    <input type="button" value="获得背景色的样式值" id="btn01"/>
    <input type="button" value="设置背景色的样式值为green" id="btn02"/>
</body>
<script>
    $("#btn01").click(function () {
        //获得div里面的CSS样式的值
        var colorValue =  $("#divId").css("background-color");
        alert("colorValue="+colorValue);
    });

    $("#btn02").click(function () {
        //设置背景色的样式值为green
        $("#divId").css("background-color","green");
    });
</script>
2.jQuery操作标签的类名
API方法解释
addClass(value)给指定的对象添加类名
removeClass(value)给指定的对象删除类名
toggleClass(value)如果没类名,则添加,如果有类名,则删除
    <body>
        <span>哈哈</span><br/>
        <span>hello</span><br/>
        <span>哈哈</span><br/>
        <span>哈哈</span><br/>
        <span>哈哈</span><br/>
        <span>哈哈</span><br/>
        <input type="button" value="添加class" id="btn01"/>
        <input type="button" value="移除class" id="btn02"/>
    </body>
    <script>
        $("#btn01").click(function () {
            //给span添加类 spanClass
            $("span").addClass("spanClass");
        });
        $("#btn02").click(function () {
            //给span移除类 spanClass
            $("span").removeClass("spanClass");
        });
    </script>

三、思路分析

  • 筛选出奇数的tr, 设置一个背景色
  • 筛选出偶数的tr, 设置一个背景色

四、代码实现

<script>
    //- 筛选出奇数的tr, 设置一个背景色
    $("tr:odd").css("backgroundColor","#FFB6C1");
    //- 筛选出偶数的tr, 设置一个背景色
    $("tr:even").css("backgroundColor","#4F81BD");
</script>

案例三:使用JQuery完成复选框的全选效果

一、需求分析

在这里插入图片描述

二、技术分析

1.jq操作标签属性【重点】

  • 语法
API方法解释
attr(name[,value])获得/设置属性的值
prop(name[,value])获得/设置属性的值(checked,selected)
  • attr与prop的注意问题

    ​ attr与prop是以1.6为界限

    ​ checked 和 selected 使用prop获取

    ​ 其他使用attr获取 获取不到换成prop

三、思路分析

  • 创建页面
  • 给最上面的复选框设置点击事件,创建一个匿名函数响应这个事件
  • 在函数体里,获得下面4个复选框对象集合(.类名),把它们的checked属性设置和最上面的一致

四、代码实现

  • js代码
	<script>
		//给最上面的复选框设置点击事件,创建一个匿名函数响应这个事件
		$("#all").click(function() {
			//根据最上面的复选框是否选中而选中,this是最上面复选框对象(并且是dom(js)对象)
			$(".one").attr("checked",this.checked);
		});
	</script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值