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值为true
var $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>