jQuery

jQuery概述

什么是jQuery

jQuery是一款优秀的javascript的轻量级框架之一,封装了dom操作、事件绑定、Ajax等功能。

特别值得一提的是基于jQuery平台的插件非常丰富,大多数前端业务场景都有其封装好的工具可直接使用。

jQuery下载和版本介绍

官网地址:http://jquery.com

==注意事项==

如果公司使用的老版本插件,我们jq升级后,可能会让插件失效....

jQuery版本

  • jquery-x.js 开发版本:有良好的缩进格式和注释,方便开发者阅读

  • jquery-x.min.js 生产版本:代码进行压缩,体积小方便网络传输

    ==注意事项==

在讲解过程中我们使用 3.2.1版本

框架(Framework)是完成某种功能的半成品,抽取重复繁琐的代码,提供简洁强大的方法实现。

jquery入门

        <!-- 当前页面如果想使用jq,需要引入jq的库,通script标签中的src属性进行即可 -->
        <script src="js/jquery-3.4.1.js"></script>
        <script>
            //我们的jq代码还是在script标签中书写,前提得有jq的库
            
            //js原生版
            window.onload = function(){
                alert(666);
            }
            
            //jq版
            jQuery(function(){
                alert(888);
            })
            
            //jq简化写法1
            $(document).ready(function(){
                alert(999);
            })
            
            //jq简化写法2 推荐
            $(function(){
                //今后的jq代码都在这里书写
            });
            
        </script>

jq与js的页面加载的区别

语法

  • js

    window.onload = function(){
        
    }

  • jq

    $(function(){
        
    });

两者之间的区别

* js: 只能定义一次,如果定义多次,后面会将前面的进行给覆盖掉
* jq: 可以定义多次

代码演示

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="../js/jquery-3.2.1.min.js"></script>
    </head>
    <body>
​
        <script>
            // js页面加载
           /* window.onload = function () {
                alert("js页面加载事件1");
​
            };
​
            window.onload = function () {
                alert("js页面加载事件2");
​
            };*/
​
            // jq页面加载
            $(function(){
                alert("jq页面加载事件1");
            });
​
            $(function(){
                alert("jq页面加载事件2");
            });
​
        </script>
​
    </body>
</html>

操作内容

​
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    <script src="../js/jquery-3.2.1.js"></script>
    <script>
        
       $(function(){
           
            //js原生写法
            //var id = document.getElementById("mydiv").innerHTML;获取内容
            var id = document.getElementById("mydiv").innerHTML='你是我的小饼干';
            alert(id);
​
            //jq通过#来拿到id
           alert($("#mydiv").html());//获取内容
           $("#mydiv").html("小甜心");//改变内容
​
       });
    </script>
</head>
<body>
    <div id="mydiv">我爱你中国</div>
</body>
​
</html>

jq与js的转换

jQuery虽然本质上也是js,但如果使用jQuery的属性和方法那么必须保证对象是jQuery对象而不是js对象。

通过js方式获取的是js对象,通过jQuery方式获取的是jQuery对象。

  • js 转 jq

    $(js对象)

  • jq 转 js

    jq对象[索引]

    jq对象.get(索引)

代码演示

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="js/jquery-3.4.1.js"></script>
        <script>
            
            $(function(){
                //js写法
                document.getElementById("mydiv").innerHTML="我是dom对象的修改";
                //jq写法
                $("#mydiv").html("我是jq对象的修改");
                
                //js ---> jq
                $(document.getElementById("mydiv")).html("js 转  jq");
                
                //jq ---> js
                //方式一
                $("div")[0].innerHTML = "jq转成js方式一";
                
                //方式二
                $("div").get(1).innerHTML = "jq转成js方式二"
            });
        </script>
    </head>
    <body>
        <div id="mydiv">1111</div>
        <div id="mydiv">2222</div>
    </body>
</html>

事件绑定

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    <script src="../js/jquery-3.2.1.js"></script>
    <script>
       $(function(){
        //获取button标签
           $("button").click(function(){
               $("p").hide();//p会被隐藏标签
               $("p").hide("slow");//用600毫秒的时间将段落缓慢的隐藏
           });
       });
    </script>
</head>
<body>
    <P>我爱你,我爱你江一燕</P>
    <button type="button">点我啊</button>
</body>
</html>

解绑事件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
</head>
<body>
	<button id="btn" type="button">使用on绑定事件</button>
    <button id="btn2" type="button">使用off解绑事件</button>
    
    <script src="../js/jquery-3.2.1.js"></script>
    <script>
        $(function () {
            //使用on绑定事件
            $("#btn").on("click",function () {
                alert("我被点击了。。")
            })
            //使用off解绑事件
            $("#btn2").click(function () {
                $("#btn").off("click");//解绑指定单击事件
                $("#btn").off();//解绑所有事件
            });
        });
    </script>

</body>
</html>

Jq循环

    <script src="../js/jquery-3.2.1.js"></script>
    <script>
        $(function () {
		   var arr =['a','b','c','d'];
		   $(arr).each(function(){
			   alert(this);//代表是当前引用对象,  用的是谁,this代表谁
		   });
        });
    </script> 	

Jq操作css样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
</head>
<body>
    
	    <ul>
	        <li>aaaaaaa</li>
	        <li>bbbbbbb</li>
	        <li>ccccccc</li>
	    </ul>

	
    <script src="../js/jquery-3.2.1.js"></script>
    <script>
        $(function () {
           $("li").mouseover(function () {
               $(this).css("background","orange");
           }).mouseout(function () {
               $(this).css("background","white");
           });

        });

    </script>

</body>
</html>

jQuery选择器

基本选择器

  • 标签选择器(元素选择器)

    语法: $("html标签名") 获得所有匹配标签名称的元素

  • id选择器

    语法: $("#id的属性值") 获得与指定id属性值匹配的元素

  • 类选择器

    语法: $(".class的属性值") 获得与指定的class属性值匹配的元素

  • 并集选择器

    语法: $("选择器1,选择器2....") 获取多个选择器选中的所有元素

    		<span class="female">古力娜扎</span>
    		<span class="female" id="dlrb">迪丽热巴</span>
    		<span class="female hero">黑人</span>
    
    		<span class="male hero">钢铁侠</span>
    		<span class="male hero">超人</span>
    		
    		<script src="js/jquery-3.4.1.js"></script>
    		<script>
    			//标签名选择器
    			var b = $("span");
    			$(b).each(function(){
    				console.info(this)
    			})
    			
    			//类选择器
    			var a = $(".female");
    			$(a).each(function(){
    				console.info(this)
    			})
    			console.info( $(".female").text() );
    			
    			//id选择器
    			console.info( $("#dlrb").text() )
    			
    			//组合选择器
    			console.info( $("#dlrb , .male ").text() )
    			
    		</script>

层级选择器

  • 后代选择器

    语法: $("A B ") 选择A元素内部的所有B元素

  • 子选择器

    语法: $("A > B") 选择A元素内部的所有B子元素

    		 <div id="kangxi">
    			<span>儿子:雍正</span>
    			<p>
    				<span>孙子:乾隆</span>
    			</p>
    		</div>
    		<div>牛顿</div>
    		
    		<script src="js/jquery-3.4.1.js"></script>
    		<script>
    			 // 1.父子
    			 console.info($("#kangxi > span").text() );
    			 
    			 // 2.祖 后代
    			 console.info($("div span").text());
    			 
    			 //3.兄弟
    			 console.info( $("div ~ div").text());
    			 
    			 //4.跟班
    			 console.info( $("span + p").text());
    			 
    		</script>

过滤器

属性过滤选择器

  • 首元素选择器

    语法: :first 获得选择的元素中的第一个元素

  • 尾元素选择器

    语法: :last 获得选择的元素中的最后一个元素

  • 偶数选择器

    语法: :even 偶数,从 0 开始计数

  • 奇数选择器

    语法: :odd 奇数,从 0 开始计数

  • 等于索引选择器

    语法: :eq(index) 指定索引元素

    <h1>表格信息</h1>
    		<h2>这是一张商品表</h2>
    		<table border="1" width="600">
    		    <tr>
    		        <th>商品编号</th>
    		        <th>商品名称</th>
    		        <th>售价</th>
    		        <th>数量</th>
    		    </tr>
    		    <tr>
    		        <td>001</td>
    		        <td>冰箱</td>
    		        <td>3000</td>
    		        <td>100</td>
    		    </tr>
    		    <tr>
    		        <td>002</td>
    		        <td>洗衣机</td>
    		        <td>2000</td>
    		        <td>50</td>
    		    </tr>
    		    <tr>
    		        <td>003</td>
    		        <td>热水器</td>
    		        <td>1500</td>
    		        <td>20</td>
    		    </tr>
    		    <tr>
    		        <td>004</td>
    		        <td>手机</td>
    		        <td>2188</td>
    		        <td>200</td>
    		    </tr>
    		</table>
    		
    		<div>slideDown(speed, [callback]) 概述
    		    通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。
    		    这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式显示出来。在jQuery
    		    1.3中,上下的padding和margin也会有动画,效果更流畅。 参数
    		    speedString,Number三种预定速度之一的字符串("slow", "normal", or
    		    "fast")或表示动画时长的毫秒数值(如:1000) callback (可选)FunctionFunction在动画完成时执行的函数</div>
    		<div>fadeOut(speed, [callback]) 概述
    		    通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。
    		    这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。 参数
    		    speedString,Number三种预定速度之一的字符串("slow", "normal", or
    		    "fast")或表示动画时长的毫秒数值(如:1000) callback (可选)Function在动画完成时执行的函数</div>
    		<script src="js/jquery-3.4.1.js"></script>
    		<script>
    			$(function(){
    				// 1.设置表格第一行,显示为红色
    				$("tr:first").css("background","red");
    		
    				// 2.设置表格除第一行以外 显示为蓝色
    				$("tr:gt(0)").css("background","blue");
    		
    				// 3.设置表格偶数行背景色 金色
    				$("tr:even").css("background","yellow");
    		
    				// 4.设置表格奇数行背景色 绿色
    				$("tr:odd").css("background","green");
    		
    				// 5.设置页面中所有标题 显示为灰色
    				$(":header").css("background","gray");
    		
    				// 6.设置页面中正在执行动画效果div背景黄色
    				$("div").click(function () {
    					$(this).slideUp("slow");
    					$("div:animated").css("background","green");
    				});
    				
                    // 7. 设置<html>背景颜色为金色
                	$(":root").css("background-color","yellow");
    			});
    		</script>

内容过滤选择器

	<div>今天是个晴天</div>
	<div>明天要去人民公园a</div>
	<div>
	    <span>JavaScript</span> 是网页开发中脚本技术
	</div>
	<div>Ajax 是异步的 JavaScript和 XML</div>
	<div>
	    <p>jQuery</p>
	    是 JavaScript一个 轻量级框架
	</div>
	<div></div>
	
	<script src="js/jquery-3.4.1.js"></script>
	 <script>
	     $(function(){
	         // 1.设置含有文本内容 ”公园” 的 div 的字体颜色为红色
	         $("div:contains('公园')").css("color","red");
	         
	         // 2.设置没有子元素的div元素 文本内容 ”这是一个空DIV“
	         $("div:empty").html("这是一个空的div").css("color","red");//空div找出来,写入
	         
	         // 3.设置包含p元素 的 div 背景色为黄色
	         $("div:has(p)").css("background","yellow");//div中包含p
	         
	         // 4.设置所有含有子元素的span字体为蓝色
	         $("span:parent").css("color","blue");//span是子元素
	     });
	 </script>

可见性过滤选择器

	<form>
	    <input type="hidden" />
	    <input type="text" name="xxx" style="display: none;" />
	</form>
	
	<table>
	    <tr>
	        <td>洗衣机</td>
	    </tr>
	    <tr>
	        <td>热水器</td>
	    </tr>
	    <tr style="display: none">
	        <td>电冰箱</td>
	    </tr>
	</table>
	
	<script src="js/jquery-3.4.1.js"></script>
	<script>
		$(function(){
			//1、选中from中不可见元素,添加class属性
			//匹配所有display:none 或者 input中的 type:hidden 元素
			$("form :hidden").attr("class","yanqi");
			$("tr :hidden").attr("class","yanqi");
             $("input:hidden").addClass("yanqi");//只能添加class属性

			//2.设置table所有 可见 tr 背景色 金色
			$("table tr:visible").css("background","yellow");

			//3.设置table所有 隐藏tr 字体颜色为红色,显示出来 
			$("table tr:hidden").css("color","red").show();
		});
	</script>

属性选择器

  • 属性名称选择器

    语法: $("A[属性名]") 包含指定属性的选择器

  • 属性选择器

    语法: $("A[属性名='值']") 包含指定属性等于指定值的选择器

  • 复合属性选择器

    语法: $("A[属性名='值'] []...") 包含多个属性条件的选择器

    <!DOCTYPE html>
    <html lang="zh-CN">
        <head>
            <meta charset="UTF-8">
            <title>06-属性选择器</title>
            <script src="../js/jquery-3.2.1.min.js"></script>
        </head>
        <body>
    
            <input type="text" name="username" value="用户名"/><br/>
    
            <input type="text" name="nickname" value="昵称"/><br/>
    
            <input type="password" name="password" value="密码"/><br/>
            
            <p class="p-yanqi">我是class="p-yanqi"</p>
    
            <script>
               	 // 1.获取type 的input标签
    			$("input[type]").attr("id","118");
    			
    			// 2.获取type=“password”的input标签
    			$("input[type='password']").attr("autocomplete","off");
    			
    			// 3.获取属性名以xx开始
    			$("p[class^='p']").css("color","green");
    			
    			// 4.获取属性名以xx结尾
    			$("p[class$='2']").css("color","red");
    			
    			// 5.属性值中包含的属性
    			$("input[type*='wo']").attr("abc","99");
    			
    			// 6.获取 type ='text' 并且 name='nickname' 的标签
    			$("input[type='text'][name='nickname']").attr("value","一燕");
    			
    
            </script>
        </body>
    </html>

子元素过滤选择器

		<table border="1" width="400" id="mytable">
		    <tr><td>1</td><td>冰箱</td></tr>
		    <tr><td>2</td><td>洗衣机</td></tr>
		    <tr><td>3</td><td>热水器</td></tr>
		    <tr><td>4</td><td>电饭锅</td></tr>
		    <tr><td>5</td><td>电磁炉</td></tr>
		    <tr><td>6</td><td>豆浆机</td></tr>
		    <tr><td>7</td><td>微波炉</td></tr>
		    <tr><td>8</td><td>电视</td></tr>
		    <tr><td>9</td><td>空调</td></tr>
		    <tr><td>10</td><td>收音机</td></tr>
		    <tr><td>11</td><td>排油烟机</td></tr>
		    <tr><td>12</td><td>加湿器</td></tr>
		    <tr><td>13 电暖气</td></tr>
		</table>

		
		<script src="js/jquery-3.4.1.js"></script>
	   <script>
		   $(function () {
			   // 1.在每个表格 下3的倍数行,字体颜色为红色 3 6 9 12
			   $("tr:nth-child(3n)").css("color","red");
			   
				// 2.每个表格 奇数行 背景色 黄色
			   $("tr:nth-child(odd)").css("background","yellow");
			   
				// 3.每个表格 偶数行 背景色 灰色
			   $("tr:nth-child(even)").css("background","gray");
			   
				// 4.每个tr 只有一个td的  字体为 蓝色
			   $("td:only-child").css("color","blue");
		   });
		</script>

表单过滤选择器

		<form action="#">
		    用户名 <input type="text" name="username" /><span id="span"></span> <br/>
		    密  码 <input type="password" name="password" /> <br/>
		    	  <input type="button" value="提交" />
		</form>
		
		<script src="js/jquery-3.4.1.js"></script>
		<script>
			   // 1.对所有text框和password框,添加离焦事件,校验输入内容不能为空
				$(":text, :password").blur(function () {
					var value = $(this).val();//获取输入框的值
					if(value == ""){
						$("#span").html("不能为空!");
					}else{
					  $("#span").html("");
				   }
				});
	
			   // 2.对button 添加 点击事件,提交form表单
				$(":button").click(function () {
					$("form").submit();
				});

		</script>

表单对象属性过滤选择器

  • 可用元素选择器

    语法: :enabled 获得可用元素

  • 不可用元素选择器

    语法: :disabled 获得不可用元素

  • 选中选择器

    语法: :checked 获得单选/复选框选中的元素

  • 选中选择器

    语法: :selected 获得下拉框选中的元素

    <form>
        <input type="text" value="不可用值1" disabled="disabled">
        <input type="text" value="可用值1">
        性别
        <input type="radio" value="男" name="gender" checked="checked"/>男
        <input type="radio" value="女" name="gender"/>女 <br/>
        爱好
        <input type="checkbox" value="体育" name="hobby"/> 体育
        <input type="checkbox" value="读书" name="hobby" checked="checked"/> 读书
        <input type="checkbox" value="音乐" name="hobby"/> 音乐
        <input type="checkbox" value="绘画" name="hobby"/> 绘画 <br/>
        城市
        <select name="city" id="edu">
            <option value="">请选择</option>
            <option value="北京">北京</option>
            <option value="上海" selected="selected">上海</option>
            <option value="天津">天津</option>
        </select> <br/>
        <input type="button" value="打印"/>
    </form>
    <script src="js/jquery-3.4.1.js"></script>
    <script>
    
        // 1. 获取可用的输入框
        $("input[type='text']:enabled").attr("id","77");
    
        // 2. 获取不可用的输入框
        $("input[type='text']:disabled").attr("id","88");
    
        // 3. 获取选中的复选框
        $("input[type='checkbox']:checked").val();
    
        // 4. 获取选中的下列选择框
        $("#edu option:selected").val();
    
    
        // 点击button 打印radio checkbox select 中选中项的值
        $(":button").click(function () {
            //单选
            alert( $("input[name='gender']:checked").val() );
            //多选
            $("input[name='hobby']:checked").each(function () {
                alert($(this).val());
            });
            //下拉
            alert($("select option:selected").val());
        })
    </script>

对象遍历

语法

jq对象.each(function(index,element){

})

代码实现

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>08-对象遍历</title>
        <script src="../js/jquery-3.2.1.min.js"></script>
    </head>
    <body>
        <!--
        jquery对象的遍历
            $.each() 用法示例
        -->
        <ul id="city">
            <li>北京</li>
            <li>上海</li>
            <li>天津</li>
        </ul>

        <script>

            /*
               内置的两个参数:
                index: 索引
                element:遍历到的元素
             */
			$("li").each(function(index,element){
				
				//遍历索引
				console.info(index);
				
				//遍历元素
				console.info(element);
				
				//遍历元素中的数据
				console.info( $(element).html() );
				
				console.info( $(this).html() );
			})
        </script>
    </body>
</html>

jQuery操作DOM

操作内容

相关方法

方法描述
text()获取/设置元素的标签体纯文本内容
html()获取/设置元素的标签体超文本内容

代码演示

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>09-dom操作内容</title>
        <script src="../js/jquery-3.2.1.min.js"></script>
    </head>
    <body>
        <div id="myDiv"><p>天王盖地虎</p></div>

        <script>
			 //1、获取标签中内容,innerHTML 从开始标签 -- 结束中间所有内容
			 console.info( $("#myDiv").html() );
			 
			 //2、设置标签中内容,直接把之前的所有内容替换掉
			 $("#myDiv").html("<h1>宝塔镇河妖</h1>");
			  
			 //3、做拼接
			 $("#myDiv").html( $("#myDiv").html() + "<h1>宝塔镇河妖</h1>" );
			 
			 //4、获取标签中的纯文本
			 console.info($("#myDiv").text());
			 
			 //设置标签中的纯文本
			 $("#myDiv").text("小鸡炖蘑菇")

        </script>
    </body>
</html>

操作属性

相关方法

方法描述对比
val()获取/设置元素的value属性值相当于:js对象.value
attr()获取/设置元素的属性相当于:js对象.setAttribute() / js对象.getAttribute()
removeAttr()删除属性
prop()获取/设置元素的属性
removeProp()删除属性

attr和prop区别

attr: 主要用于设置属性的值这一类的操作
prop: 主要用于判断属性是否存在或者操作布尔类型的操作
      例如: checked selected

代码

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>10-dom操作属性</title>
        <script src="../js/jquery-3.2.1.min.js"></script>
    </head>
    <body>
        <form action="#" method="get">
            姓名 <input type="text" name="username" id="username" value="德玛西亚"/> <br/>

            爱好
            <input id="hobby" type="checkbox" name="hobby" value="perm" checked="checked">烫头<br/>

            <input type="reset" value="清空按钮"/>
            <input type="submit" value="提交按钮"/><br/>
        </form>

        <script>
            // 1.获取文本框value属性
            // 方式一:attr()
            // 2.1 获取value属性
            console.log($("#username").attr('type'));
            
            // 2.2 新增or修改value属性值
            $("#username").attr("class","username");

            // 2.3 删除value属性
            $("#username").removeAttr("value");

            // 方式二: val()
            // 获取属性值
            console.log($("#username").val());

            // 设置属性值
            $("#username").val('哈哈哈~~');

            // 2.获取爱好的checked属性
            /*
                方式一: attr
                选中返回: checked
                末选中返回: undefined
            */
            console.log($("#hobby").attr('checked'));

            /*
               方式二:prop()
               jq在1.6版本之后,弥补这个设计缺陷,如果该属性被选中返回true 末被选中返回false
             */
            console.log($("#hobby").prop('checked'));//返回属性的值的状态

            $("#hobby").prop('checked',false);//设置属性

            $("#username").prop("id","999");//也可以设置属性,注意不能自定义属性

        </script>
    </body>
</html>

操作样式

相关方法

方法描述
css()获取/设置样式
addClass()添加class属性值
removeClass()删除class属性值
toggleClass()切换class属性,无添加,有删除

代码演示

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>11-dom操作样式</title>
        <script src="../js/jquery-3.2.1.min.js"></script>
        <style>
            #p1 {
                background-color: red;
            }

            .mp {
                color: green;
            }

            .mpp {
                background-color: lightgray;
            }
        </style>

    </head>
    <body>
        <p id="p1">1. 设置一个css样式</p>
        <p id="p2">2. 通过class设置样式</p>
        <p id="p3">3.
            <button id="toggle">切换</button>
            class样式
        </p>

        <script>
            let $p1 = $('#p1');//获取p1
            let $p2 = $('#p2');//获取p2
            let $p3 = $('#p3');//获取p3

            // 1. 获取$p1的背景色
            console.log($p1.css('background-color'));
            // 1.1 设置$p1的背景色为gray色
            $p1.css('background-color', 'gray');


            // 2. 通过class设置样式
            $p2.addClass('mp mpp');
            $p2.removeClass('mpp');

            // 3. toggleClass() 切换一个class
            $('#toggle').click(function () {
                $p3.toggleClass('mpp');
            });
        </script>
    </body>
</html>

操作元素(节点操作)

相关方法

方法描述
$(标签)创建一个标签 $('<li>xxx</li>')
prepend()在父标签中将子标签放在第一个位置
append()在父标签中将子标签放在最后一个位置
empty()清空子元素
remove()删除自己

代码演示

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>13-dom操作元素</title>
        <script src="../js/jquery-3.2.1.min.js"></script>
    </head>
    <body>

        <ul id="star">
            <li>古力娜扎</li>
            <li>迪丽热巴</li>
        </ul>

        <script>
            let $star = $('#star'); // 无序列表
            
            // 1.前面添加马尔扎哈
            $star.prepend($('<li>马尔扎哈</li>'));
            
            // 2.后面添加萨瓦迪卡
            $star.append($('<li>萨瓦迪卡</li>'));
            
            // 3.移出所有列表项
            $star.empty();
            
            // 4.删除无序列表
            $star.remove();
        </script>
    </body>
</html>

事件绑定

jQuery的事件与js的事件的功能和作用一样,只是在使用语法上稍微有些差异。

jq事件绑定语法

jq对象.事件函数(function(){})

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>14-jq事件绑定</title>
    <script src="../js/jquery-3.2.1.min.js"></script>
</head>
<body>
<input type="button" value="js方式" id="jsBtn"> <br>
<input type="button" value="jq方式" id="jqBtn"> <br>

<script>
    // js事件绑定
    document.getElementById('jsBtn').οnclick=function () {
        alert('js事件绑定')
    }
    // jq事件绑定
    $('#jqBtn').click(function () {
        alert('jq事件绑定')
    })
</script>
</body>
</html>

常见事件

点击事件

事件描述
click()单击事件
dblclick()双击事件

焦点事件

事件描述
blur()失去焦点
focus()元素获得焦点

鼠标事件

事件描述
mousedown()鼠标按钮被按下
mouseup()鼠标按键被松开
mousemove()鼠标被移动
mouseover()鼠标移到某元素之上
mouseout()鼠标从某元素移开

键盘事件

事件描述
keydown()某个键盘按键被按下
keyup()某个键盘按键被松开
keypress()某个键盘按键被按下并松开

改变事件

事件描述
change()域的内容被改变

表单事件

事件描述
submit()提交按钮被点击

案例

全选/全不选

		<table id="tab1" border="1" width="800" align="center" >
		   <tr>
			  <td colspan="5"><input type="button" value="删除"></td>
		   </tr>
		   <tr>
			  <th><input type="checkbox" οnclick="selectAll(this)" ></th>
			  <th>分类ID</th>
			  <th>分类名称</th>
			  <th>分类描述</th>
			  <th>操作</th>
		   </tr>
		   <tr>
			  <td><input type="checkbox" class="itemSelect"></td>
			  <td>1</td>
			  <td>手机数码</td>
			  <td>手机数码类商品</td>
			  <td><a href="">修改</a>|<a href="">删除</a></td>
		   </tr>
		   <tr>
			  <td><input type="checkbox" class="itemSelect"></td>
			  <td>2</td>
			  <td>电脑办公</td>
			  <td>电脑办公类商品</td>
			  <td><a href="">修改</a>|<a href="">删除</a></td>
		   </tr>
		   <tr>
			  <td><input type="checkbox" class="itemSelect"></td>
			  <td>3</td>
			  <td>鞋靴箱包</td>
			  <td>鞋靴箱包类商品</td>
			  <td><a href="">修改</a>|<a href="">删除</a></td>
		   </tr>
		   <tr>
			  <td><input type="checkbox" class="itemSelect"></td>
			  <td>4</td>
			  <td>家居饰品</td>
			  <td>家居饰品类商品</td>
			  <td><a href="">修改</a>|<a href="">删除</a></td>
		   </tr>
		</table>

		<script src="js/jquery-3.4.1.js"></script>
		<script>
			
		  //分析:需要保证下边的选中状态和第一个复选框的选中状态一致即可
          function selectAll(obj){
			//alert(obj.checked);//true false
            //获取下边的复选框  选中复选框为true,没选中为false
            $(".itemSelect").prop("checked",obj.checked);
          }

		</script>

左右移动

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title></title>
​
      <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>
​
   </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>
      
      <script src="js/jquery-3.4.1.js"></script>
      <script>
      
         //需求:实现下拉列表选中条目左右选择功能
         
         $(function () {
            //toRight
            $("#toRight").click(function () {
                //append  元素后面添加
               //获取右边的下拉列表对象,append(左边下拉列表选中的option)
               $("#rightName").append($("#leftName > option:selected"));
                });
      
                //toLeft
                $("#toLeft").click(function () {
                    //appendTo   获取右边选中的option,将其移动到左边下拉列表中
               $("#rightName > option:selected").appendTo($("#leftName"));
      
                });
            });
      </script>
   </body>
</html>
​
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值