1、jQuery概述
jQuery是一款优秀的额javascript的轻量级框架之一,封装了dom操作,事件绑定,Ajax等功能
框架(Framework):是完成某种功能的半成品,抽取重复繁琐的代码,提供简洁强大的方法实现
2、jQuery基础语法
jQuery本质上是javascript,所以引入方法和javascript一样
jq和js的区别:
1、jQuery虽然本质上也是js,但要使用jQuery的属性和方法必须保证对象是jQuery对象
2、通过js获取的对象时js对象,通过jQuery获取的对象时jQuery对象
jq与js的转换:
js转jq:${js对象}jq转js:jq对象[索引]jq对象.get(索引)
jq与js页面加载区别:
js:window.onload=function(){}jq:$(function(){});区别:js:只能定义一次,如果多次定义,后面的会将前面的进行给覆盖掉jq:可以定义多次
3、jQuery选择器
1、选择器
1、基本选择器:$("CSS选择器"); //会自动匹配选择器的类型$("选择器1,选择器2,选择器3...") //并集选择器2、层级选择器:$("A B"); //后代选择器 --- A元素下的所有B元素$("A>B"); //子选择器 --- A元素内部的所有B子元素3、属性选择器:$("A[属性名]") ; //属性名称选择器$("A[属性名='值']"); //包含指定属性指定值的选择器$("A[属性名1='值'][属性名2='值']"); //复合属性选择器,更精确4、过滤选择器:first :获得选择的元素中的第一个元素last :获得选择的元素的最后一个元素even :获得偶数元素,从0开始计数odd :获得奇数元素,从0开始计数eq(index) :获取指定索引的元素5、扩展选择器:(索引选择器)gt(index):获取大于指定索引的元素lt(index):获取小于指定索引的元素6、表单过滤选择器:enabled:获得可用元素disabled:获得不可用元素checked:获得单选/复选框选中的元素selected:获得下拉框中选中的元素
2、对象遍历
jq对象.each(function(index,element){//index:索引//element:遍历到的元素//如果没有参数,使用this来获取遍历到的元素。//遍历到的对象为js对象})
4、jQuery操作DOM
操作内容:
相关方法:text():获取/设置元素的标签体纯文本内容html():获取/设置元素的标签体超文本内容$(选择器).text(参数); //有参数代表设置,无参数代表获取$(选择器).html(参数); //有参数代表设置,无参数代表获取
操作属性:
相关方法:val():获取/设置元素的value属性attr():获取或设置元素的属性 《==》js对象.setAttribute() / js对象.getAttribute()removeAttr():删除属性prop():获取/设置元素的属性 ---可获取单选多选框的返回值removeProp():删除属性attr与prop的区别:attr:主要用于设置属性的值这一类的操作prop:主要用于判断属性是否存在操作布尔类型的操作
操作样式:
相关方法;css():获取/设置样式addClass():添加class属性值removeClass():删除class属性值toggleClass():切换class属性,无添加,有删除
操作元素:
相关方法:$(标签) :创建一个标签,例:$('<li>xxx</li>')prepend():在父标签中将子标签放在第一个位置append():在父标签中将子标签安放在最后一个位置empty():清空子元素,保留自身元素remove():删除自己jq对象.clone();复制该jq对象
5、事件绑定
绑定语法:
jq对象.事件函数(function(){});
常见事件:
点击事件:click() :单击事件dblclick():双击事件焦点事件:blur():失去焦点focus():获得焦点鼠标事件:mousedowm();鼠标按钮被按下mouseup():鼠标按钮被松开mousemove():鼠标被移动mouseover():鼠标移到某元素之上mouseout():鼠标从某元素移开键盘事件:keydown():某个键盘按键被按下keyuo():某个键盘按键被松开keypress():某个键盘按键被按下并松开改变事件:change():域的内容被改变表单事件:submit():提交按钮被点击
6、一些Demo
隔行变色:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>隔行变色</title><script src="../js/jquery-3.4.1.js"></script><style>.ji{background-color: #cccccc;}.ou{background-color: aliceblue;}.over{background-color: beige;}</style></head><body><table id="tab1" border="1" width="800" align="center" cellspacing="0" cellpadding="0"><tr><th width="100px"><input type="checkbox">全/<input type="checkbox">反选</th><th>分类ID</th><th>分类名称</th><th>分类描述</th><th>操作</th></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>1</td><td>手机数码</td><td>手机数码类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>2</td><td>电脑办公</td><td>电脑办公类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>3</td><td>鞋靴箱包</td><td>鞋靴箱包类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>4</td><td>家居饰品</td><td>家居饰品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>5</td><td>牛奶制品</td><td>牛奶制品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>6</td><td>大豆制品</td><td>大豆制品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>7</td><td>海参制品</td><td>海参制品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>8</td><td>羊绒制品</td><td>羊绒制品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>9</td><td>海洋产品</td><td>海洋产品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>10</td><td>奢侈用品</td><td>奢侈用品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr><tr align="center"><td><input type="checkbox" class="checkbox"></td><td>11</td><td>家居饰品</td><td>家居饰品类商品</td><td><a href="">修改</a>|<a href="">删除</a></td></tr></table><script>$(function () { //jq函数//获取从零开始的所有的偶数行并赋值class属性$("tr:gt(0):even").addClass("ji");//获取从零开始的所有的奇数行并赋值class属性$("tr:gt(0):odd").addClass("ou");var oddColor;//鼠标移到某元素之上$("tr:gt(0)").mouseover(function () {//当鼠标落到该元素上,获取该元素的背景色oddColor = $(this).css("backgroundColor");//改变该元素的背景色$(this).css("backgroundColor",'beige');});//鼠标从某元素上移开$("tr:gt(0)").mouseout(function () {$(this).css("backgroundColor",oddColor);});});</script></body></html>
全选全不选:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>商品全选</title><script src="../js/jquery-3.4.1.js"></script></head><body><!--商品全选1. 全选 点击全选按钮,所有复选框都被选中2. 反选 点击反选按钮,所有复选框状态取反--><button id="btn1">1. 全选</button><button id="btn2">2. 反选</button><br/><input type="checkbox">电脑<input type="checkbox">手机<input type="checkbox">汽车<input type="checkbox">别墅<input type="checkbox" checked="checked">笔记本<script>//获取全部的复选框,全选则全部复选框值checked值为truevar $btn1 = $('#btn1');$btn1.click(function () {//给所有的type属性为checkbox的checked的值都设置为true$("input[type='checkbox']").prop('checked',true);});//$('#btn2').click(function () {$("input[type='checkbox']").each(function () {//遍历获取复选框的checked的值,取反$(this).prop('checked', !$(this).prop('checked'));})});</script></body></html>
QQ表情选择:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>QQ表情选择</title><script src="../js/jquery-3.4.1.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></head><body><div class="emoji"><ul><li><img src="../img/01.gif" height="30" width="30" alt=""/></li><li><img src="../img/02.gif" height="30" width="30" alt=""/></li><li><img src="../img/03.gif" height="30" width="30" alt=""/></li><li><img src="../img/04.gif" height="30" width="30" alt=""/></li><li><img src="../img/05.gif" height="30" width="30" alt=""/></li><li><img src="../img/06.gif" height="30" width="30" alt=""/></li><li><img src="../img/07.gif" height="30" width="30" alt=""/></li><li><img src="../img/08.gif" height="30" width="30" alt=""/></li><li><img src="../img/09.gif" height="30" width="30" alt=""/></li><li><img src="../img/10.gif" height="30" width="30" alt=""/></li><li><img src="../img/11.gif" height="30" width="30" alt=""/></li><li><img src="../img/12.gif" height="30" width="30" alt=""/></li><li><img src="../img/13.gif" height="30" width="30" alt=""/></li><li><img src="../img/14.gif" height="30" width="30" alt=""/></li></ul><p id="word"><strong>请发言:</strong><img src="../img/12.gif" height="22" width="22" alt=""/></p></div><script>$(".emoji img").click(function () {//赋值this的内容console.log($(this).clone());//添加到父对象中$("#word").append($(this).clone());})//绑定父对象的子对象点击事件,$('#word').on('click',"img",function(){//该字元素$(this).remove();})</script></body></html>
