一遍过JQuery【JAVAEE基础】

JQuery 基础

一、概念:一个javaScript框架,简化JS开发
* javaScript框架本质上就是一些js文件,封装了js的原生代码。
二、入门操作:
1.下载JQuery
*jquery-xxx.js与jquery-xxx.min.js的区别
1.jquery-xxx.js:开发版本。有良好的缩进和注释,体积大一些
2.jquery-xxx.min.js:生产版本。程序中使用,没有缩进,体积较小,程序加载快。
2.导入JQuery的js文件
3.使用

三、JQuery对象和JS对象区别与转换
1.JQuery对象在操作时,更加方便。
2.JQuery对象和js对象的方法是不通用的。
3.两者相互转换:
jq–>js:jq对象[索引] 或者 jq对象.get(索引)
js–>jq:$(js对象)

四、选择器:筛选具有相似特征的元素(标签)

1.基本操作:

事件绑定

//Jquery入口函数(dom文档加载完之后执行该函数中的代码)
		$(function () {
			$("#b1").click(function () {
				alert("abc");
			});
		});

入口函数

$(function(){

})

样式控制

 //修改css样式
		$(function () {
			//$("#div1").css("background-color","pink")
			$("#div1").css("backgroundColor","pink")
		});

2.分类

1.基本选择器(元素选择器)

	1.标签选择器(元素选择器)
		*语法:$("html标签名") 获得所有匹配标签名称的元素。
	2.id选择器
		*语法:$("#id的属性值") 获得与指定id属性值匹配的元素
	3.类选择器
		*语法:$(".class的属性值") 获得与指定的class属性值匹配的元素
	4.并集选择器:
		*语法:$("选择器1,选择器2....") 获取多个选择器选中的所有元素

2.层级选择器
      1.后代选择器
	       *语法:$("A B") 选择A元素内部的所有B元素
       2.子代选择器
	       *语法:$("A>B") 选择A元素内部的所有B子元素
3.属性选择器
       1.属性名称选择器
       		*语法:$("A[属性名]") 包含指定属性的选择器
        2.属性选择器
     		 *语法:$("A[属性名='值']") 包含指定属性等于指定值的选择器
        3.复合属性选择器
      		  *语法:$("A[属性名='值'][属性名='值']...")包含多个属性条件的选择器
4.过滤选择器
    1.首元素选择器
        * 语法::first 获得选择的元素中第一个元素
    2.尾元素选择器
        * 语法::last 获得选择的元素中第一个元素
    3.非元素选择器
        * 语法::not(selector) 不包括指定内容的选择器
        4.偶数选择器
        * 语法::even 偶数,从0开始计数
        5.奇数选择器
        * 语法::odd 奇数,从0开始计数
        6.等于索引选择器
        * 语法::eq(index) 指定索引元素
        7.大于索引选择器
        * 语法::gt(index) 大于指定索引元素
    8.小于索引选择器
        * 语法::lt(index) 小于指定索引元素
    9.标题选择器
        * 语法::header 获得标题(h1、h2...)元素,固定写法

5.表单过滤选择器 
   	   1.可用元素选择器
   		  * 语法::enable 获得可用元素
        2.可不用元素选择器
      	  * 语法::disable 获得不可用元素
        3.选中选择器
      	  * 语法::checked 获得单选/复选框选中的元素
        4。选中选择器
      	  * 语法::selected 获得下拉框选中的元素

五、DOM操作

1.内容操作
      1.html():获取/设置元素标签体内容        <a><font>内容</font></a>--><font>内容</font>
      2.text():获取/设置元素标签体纯文本内容  <a><font>内容</font></a>-->内容
      3.val():获取/设置元素的value属性值
      4.css():获取/设置元素的css样式

2.属性操作
     1.通用属性操作
         1.attr():获取/设置元素的属性
		 2.removeAttr():删除属性
		 3.prop():获取/设置元素的属性
		 4.removeProp():删除属性

		 *attr和prop的区别
		    1.如果操作的是元素的固有属性,建议使用prop。
		    2.如果操作的是元素自定义属性,建议使用attr。
      2.对class属性操作
	     1.addClass():添加class属性值
		 2.removeClass():删除class属性值
		 3.toggleClass():切换class属性
	   *toggleClass("one"):判断如果元素对象上存在class="one",则将属性值删除,如果不存在则添加。
  
3.CRUD操作
      1.append():父元素将子元素追加到末尾
         * 对象1.append(对象2):将对象2添加到对象1元素内部,并且在末尾。
      2.prepend():父元素将子元素追加到开头
         * 对象1.prepend(对象2):将对象2添加到对象1元素内部,并且在开头。
      3.appendTo():
         * 对象1.appendTo(对象2):将对象1添加到对象2内部,并且在末尾。
      4.prependTo():
         * 对象1.prependTo(对象2):将对象1添加到对象2内部,并且在开头。

      5.after():添加元素到元素后边
          * 对象1.after(对象2):将对象2添加到对象1后边。对象1和对象2是兄弟关系。
      6.before():
          * 对象1.before(对象2):将对象2添加到对象1前边。对象1和对象2是兄弟关系。
      7.insertAfter()
          * 对象2.insertAfter(对象1):将对象2添加到对象1后边。对象1和对象2是兄弟关系。
      8.insertBefore():
          * 对象2.insertBefore(对象1):将对象2添加到对象1前边。对象1和对象2是兄弟关系。
          
      9.remove():移除元素
          *对象.remove():将对象删除掉。
          10.empty():清空元素的所有后代元素
          *对象.empty():将对象的后代元素全部清空,但是保留当前对象的

六、案例

1.隔行变色:

	      <script>
			$(function () {
				//需求:将数据行的奇数行背景色设置为 pink,偶数行背景色设置为 yellow
				$("tr:gt(1):odd").css("backgroundColor","pink");

				//获取数据行的偶数行,设置背景颜色为yellow
				$("tr:gt(1):even").css("backgroundColor","yellow");
			})
		</script>

2.QQ表情的选择
阿斯顿

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>QQ表情选择</title>
	 <script  src="js/jquery-3.4.1.min.js"></script>
    <style type="text/css">
    *{margin: 0;padding: 0;list-style: none;}

    .emoji{margin:50px;}
    ul{overflow: hidden;}
    li{float: left;width: 48px;height: 48px;cursor: pointer;}
    .emoji img{ cursor: pointer; }
    </style>
	<script>
        //需求:点击qq表情,将其追加到发言框中
         $(function () {
             //1.给img图片添加点击事件
             $("ul img").click(function () {
                 //2.追加到p标签
                 $(".word").append($(this).clone()); //$(this).clone()复制当前对象并返回
             })
         })

		
    </script>
	
</head>
<body>
    <div class="emoji">
        <ul>
            <li><img src="img/01.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/02.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/03.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/04.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/05.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/06.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/07.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/08.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/09.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/10.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/11.gif" height="22" width="22" alt="" /></li>
            <li><img src="img/12.gif" height="22" width="22" alt="" /></li>
        </ul>
        <p class="word">
            <strong>请发言:</strong>
            <img src="img/12.gif" height="22" width="22" alt="" />
        </p>
    </div>
</body>
</html>

3.下拉列表的左右移动
左右

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script  src="js/jquery-3.4.1.min.js"></script>
		<style>
			#leftName , #btn,#rightName{
				float: left;
				width: 100px;
				height: 300px;
			}
			#toRight,#toLeft{
				margin-top:100px ;
				margin-left:30px;
				width: 50px;
			}

			.border{
				height: 500px;
				padding: 100px;
			}
		</style>

		<script>
			//需求:实现下拉列表选中条目左右选择功能
			
			$(function () {
				//toRight
				$("#toRight").click(function () {
					//获取右边下拉列表对象.append(左边下拉列表选中的option)
					$("#rightName").append($("#leftName>option:selected"));
				});

                //toLeft
                $("#toLeft").click(function () {
                   //获取右边下拉列表选中的option.appendTo(左边下拉列表对象)
                   $("#rightName>option:selected").appendTo($("#leftName"));
                });

            });
			

		</script>



	</head>
	<body>
		<div class="border">
			<select id="leftName" multiple="multiple">
				<option>张三</option>
				<option>李四</option>
				<option>王五</option>
				<option>赵六</option>
			</select>
			<div id="btn">
				<input type="button" id="toRight" value="-->"><br>
				<input type="button" id="toLeft" value="<--">

			</div>

			<select id="rightName" multiple="multiple">
				<option>钱七</option>
			</select>

		</div>


	</body>
</html>

JQuery高级

1.动画

 1.默认显示和隐藏方式 
        1.show([speed,[easing],[fn]])
	   	  1.参数:
	     	  1.speed:动画的速度。三个预定义的值("slow","normal","fast")或者表示动画时长的毫秒值(如:1000)
		      2.easing:用于指定切换的效果,默认是"swing",可用参数"linear"
		         * swing:动画执行时效果是 先慢,中间快,最后又慢。
				 * linear:动画执行时速度是匀速的。
		      3.fn:动画完成时执行的函数,每个元素执行一次。
	2.hide([speed,[easing],[fn]])
	      
	3.toggle([speed,[easing],[fn]]) 
 2.滑动显示和隐藏方式
        1.slideDown([speed,[easing],[fn]])
        2.slideUp([speed,[easing],[fn]])
		3.slideToggle([speed,[easing],[fn]]) 
 3.淡入淡出显示和隐藏方式
		1.fadeIn([speed,[easing],[fn]])
        2.fadeOut([speed,[easing],[fn]])
		3.fadeToggle([speed,[easing],[fn]]) 
2.遍历
  1.js的遍历方式
   		* for(初始化值;循环结束条件;步长)
  2.jq的遍历方式
        1. jq对象.each(callback)
		2. $.each(object,[callback])
		3. for( of );

3.事件绑定

 1.Jquery标准的绑定方式
    jq对象.事件方法(回调函数)
	* 注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。
    *表单对象.submit();//让表单提交
 2.on绑定事件/off解除绑定
    jq对象.on("事件名称",回调函数)
	jq对象.off("事件名称")
 3.事件切换:toggle
    jq对象.toggle(fn1,fn2....)
 	  *当点击jq对象对应的组件的后,会执行fn1,第二次点击会执行fn2...
    
*注意:1.9版本 .togglw方法删除,Jquery Migrate(迁移)插件可以恢复次功能。

4.案例

1.广告的显示与隐藏。

 <script>
        /*
            需求:
                1. 当页面加载完,3秒后。自动显示广告
                2. 广告显示5秒后,自动消失。

            分析:
                1. 使用定时器来完成。setTimeout (执行一次定时器)
                2. 分析发现JQuery的显示和隐藏动画效果其实就是控制display
                3. 使用  show/hide方法来完成广告的显示
         */

        //入口函数,在页面加载完成之后,定义定时器,调用这两个方法
        $(function () {
            //定义定时器,调用adShow方法 3秒后执行一次  1秒=1000毫秒(ms)
            setTimeout(adshow,3000);
            //定义定时器,调用adHide方法,8秒后执行一次
            setTimeout(adhide,8000);
        })
        //显示广告
        function adshow() {
            $("#ad").show("slow");
        }
        
        //隐藏广告
        function adhide() {
            $("#ad").hide("slow");
        }
  </script>

2.抽奖

        分析:
            1. 给开始按钮绑定单击事件
                1.1 定义循环定时器
                1.2 切换小相框的src属性
                    * 定义数组,存放图片资源路径
                    * 生成随机数。数组索引
            2. 给结束按钮绑定单击事件
                1.1 停止定时器
                1.2 给大相框设置src属性
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jquery案例之抽奖</title>
    <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>

    <script language='javascript' type='text/javascript'>
        var imgs=[
            "../img/man00.jpg"
            ,"../img/man01.jpg"
            ,"../img/man02.jpg"
            ,"../img/man03.jpg"
            ,"../img/man04.jpg"
            ,"../img/man05.jpg"
            ,"../img/man06.jpg"
        ];
        var startID;
        var index;
        $(function () {
            //处理按钮是否可以使用的效果
            // $("#startID").prop("disabled",false);
            // $("#stopID").prop("disabled",true);



            //1.给开始按钮绑定点击事件
            $("#startID").click(function () {
                //1.1定义循环定时器 20毫秒执行一次
                startID=setInterval(function () {
                    //处理按钮是否可以使用的效果
                    $("#startID").prop("disabled",true);
                    $("#stopID").prop("disabled",false);

                    //1.2生成随机角标0-6
                    index=Math.floor(Math.random()*7);//0.000-0.999 -->*7--> 0.000-6.999
                    //1.3设置小相框的src属性
                    $("#img1ID").prop("src",imgs[index]);
                },20);
            });
            //给结束按钮绑定点击事件
            $("#stopID").click(function () {
                //处理按钮是否可以使用的效果
                $("#startID").prop("disabled",false);
                $("#stopID").prop("disabled",true);

                //1.1 停止定时器
                clearInterval(startID);
                //2.1 设置大相框的src属性
                $("#img2ID").prop("src",imgs[index]).hide();

                //显示动画
                $("#img2ID").show(1000);//一秒后显示
            });
        })

    </script>

</head>
<body>

<!-- 小像框 -->
<div style="border-style:dotted;width:160px;height:100px">
    <img id="img1ID" src="../img/man00.jpg" style="width:160px;height:100px"/>
</div>

<!-- 大像框 -->
<div
        style="border-style:double;width:800px;height:500px;position:absolute;left:500px;top:10px">
    <img id="img2ID" src="../img/man00.jpg" width="800px" height="500px"/>
</div>

<!-- 开始按钮 -->
<input
        id="startID"
        type="button"
        value="点击开始"
        style="width:150px;height:150px;font-size:22px">

<!-- 停止按钮 -->
<input
        id="stopID"
        type="button"
        value="点击停止"
        style="width:150px;height:150px;font-size:22px">


</body>
</html>

5.插件:增强Jquery的功能

01-jQuery对象进行方法扩展.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>01-jQuery对象进行方法扩展</title>
    <script src="../../js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
       //使用jquery插件 给jq对象添加2个方法 check()选中所有复选框,uncheck()取消选中所有复选框
        
        
        //1.定义jqeury的对象插件
        $.fn.extend({
            //定义了一个check()方法。所有的jq对象都可以调用该方法
            check:function () {
               //让复选框选中

                //this:调用该方法的jq对象
                this.prop("checked",true);
            },
            uncheck:function () {
                //让复选框不选中

                this.prop("checked",false);
            }

        });

        $(function () {
           // 获取按钮
            //$("#btn-check").check();
            //复选框对象.check();

            $("#btn-check").click(function () {
                //获取复选框对象
                $("input[type='checkbox']").check();

            });

            $("#btn-uncheck").click(function () {
                //获取复选框对象
                $("input[type='checkbox']").uncheck();

            });
        });


    </script>
</head>
<body>
<input id="btn-check" type="button" value="点击选中复选框" onclick="checkFn()">
<input id="btn-uncheck" type="button" value="点击取消复选框选中" onclick="uncheckFn()">
<br/>
<input type="checkbox" value="football">足球
<input type="checkbox" value="basketball">篮球
<input type="checkbox" value="volleyball">排球

</body>
</html>


02-jQuery全局进行方法扩展

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>02-jQuery全局进行方法扩展</title>
    <script src="../../js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        //对全局方法扩展2个方法,扩展min方法:求2个值的最小值;扩展max方法:求2个值最大值
        
        $.extend({
            max:function (a,b) {
                //返回两数中的较大值
                return a >= b ? a:b;
            },
            min:function (a,b) {
                //返回两数中的较小值
                return a <= b ? a:b;
            }
            
            
        });

        //调用全局方法
        var max = $.max(4,3);
        //alert(max);

        var min = $.min(1,2);
        alert(min);
    </script>
</head>
<body>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值