一、概述
1、jQuery是js库,库:相当于java的工具类,库是存放东西的, jQuery是存放js代码的地方, 里面有很多function函数
2、作用:使用jQuery简化对dom的操作,执行事件处理,动画,ajax请求
二、dom对象和jQuery对象
1、dom对象,使用javascript的语法创建的对象叫做dom对象, 也就是js对象。
var obj = document.getElementById(“txt1”); obj是dom对象,也叫做js对象
obj.value;
2、jquery对象: 使用jquery语法表示对象叫做jquery对象, 注意:jquery表示的对象都是数组。
例如 var jobj = $(“#txt1”), jobj就是使用jquery语法表示的对象。 也就是jquery对象。 它是一个数组。
现在数组中就一个值。
3、dom对象可以和jquery对象相互的转换。
dom对象可以转为jquery , 语法: $(dom对象)
jquery对象也可以转为dom对象, 语法: 从数组中获取第一个对象, 第一个对象就是dom对象, 使用[0]或者get{0).
4、为什么要进行dom和jquery的转换:目的是要使用对象的方法,或者方法。
当你使用dom对象时,可以使用dom对象的属性或者方法, 如果你要想使用jquery提供的函数,必须是jquery对象才可以。
示例代码1:
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
function btnClick(){
//获取dom对象
var obj = document.getElementById("btnClick");
//使用dom对象的value属性,获取值
alert(obj.value);
//把dom对象转成jquery对象,使用jquery库中的函数
var jobj = $(obj);
//调用jquery中的函数,获取value的值
alert(jobj.val());
}
</script>
<input type="button" value="==我是按钮==" id="btnClick" onclick="btnClick()"/>
</body>
示例代码2:
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
function btnClick(){
//使用jquery的语法,获取dom对象
// var obj = $("#txt")[0];//从数据中获取下标是0的dom对象
var obj = $("#txt").get(0);//从数组中获取下标是0的dom对象
var num = obj.value;
obj.value = num * num;
}
</script>
<input type="button" value="计算平方" onclick="btnClick()" />
<br>
<input type="text" id="txt" />
</body>
三、基本使用
1、获取jquery的js文件
2、在你的程序中加入js文件的地址
<script type="text/javascript" src="js/jquery-3.4.1.js
"></script>
3、获取jquery对象,调用它的函数
4、jquery3.4.1的压缩和非压缩版本的地址
链接:https://pan.baidu.com/s/1OoYRjPkM7DE_YAN8hDLMIA
提取码:acbk
四、选择器
就是一个字符串, 用来定位dom对象的。定位了dom对象,就可以通过jquery的函数操作dom
1、基本选择器
(1)id选择器
语法: $(“#dom对象的id值”)
通过dom对象的id定位dom对象的。 通过id找对象, id在当前页面中是唯一值。
(2)class选择器
语法: $(".class样式名)
class表示css中的样式, 使用样式的名称定位dom对象的。
(3)标签选择器
语法: $(“标签名称”)
使用标签名称定位dom对象的
(4)所有选择器
语法:$(“*”)
选择页面中所有的dom对象
(5)组合选择器
语法:$(“#id,class,标签名”)
使用id,class,标签的选择器,多个dom对象的定位
2、表单选择器
语法: $(“:type属性值”)
使用标签的type属性值,定位dom对象的方式。
例如,所有的单行文本,$(“:text”)
- 根据type属性值定位dom对象的,页面中的组件一定有type属性才可以使用
- 表单选择器和form标签无关
示例代码:
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
function fun1(){
//使用表单选择器$(:type的值"")
var obj = $(":text");
//获取value属性的值 val()是jquery中的函数,读取value属性值
alert(obj.val());
}
function fun2(){
//定位radio
var obj = $(":radio");//数组,目前是两个对象,man,woman
for(var i=0;i<obj.length;i++){
//循环数组,数组中的成员是dom对象,可以使用dom的属性或者函数
//从数组中获取成员,使用下标的方式
var dom = obj[i];
//使用dom对象的属性,获取value值
alert(dom.value);
/* var jobj = $(obj);
alert(jobj.val()); */
}
}
function fun3(){
//定位checkbox
var obj = $(":checkbox");//数组,有三个对象
for(var i=0;i<obj.length;i++){
var dom = obj[i];
// alert(dom.value);
//使用jquery的val函数,获取value的值
//1.需要jquery对象
var jobj = $(dom);
//2.调用jquery函数
alert(jobj.val());
}
}
</script>
<input type="text" value="我是type=text" /><br>
<input type="radio" value="man" />男<br>
<input type="radio" value="women" />女<br>
<input type="checkbox" value="bike" />骑行<br>
<input type="checkbox" value="football" />足球<br>
<input type="checkbox" value="music" />音乐<br>
<input type="button" value="我是type=text" onclick="fun1()" /><br>
<input type="button" value="获取radio属性值" onclick="fun2()" /><br>
<input type="button" value="获取checkbox属性值" onclick="fun3()" /><br>
</body>
五、过滤器
1、概念
在定位了dom对象后,根据一些条件筛选dom对象。
过滤器又是一个字符串,用来筛选dom对象的。
过滤器不能单独使用, 必须和选择器一起使用。
2、基本过滤器
(1)$(“选择器:first”)
语法:$(“选择器:first”)
定位数组中的第一个dom对象
(2)$(“选择器:last”)
语法:$(“选择器:last”)
定位数组中的最后一个dom对象
(3)$(“选择器:eq(下标)”)
语法:$(“选择器:eq(数组的下标)”)
定位到制定下标的dom对象
(4)$(“选择器:lt(下标)”)
语法:$(“选择器:lt(下标)”)
定位小于指定下标的dom对象
(5)$(“选择器:gt(下标)”)
语法:$(“选择器:gt(下标)”)
定位大于指定下标的dom对象
示例代码:
<style type="text/css">
div{
background: gray;
}
</style>
</head>
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
//$(document).ready(函数):当页面中的dom对象加载成功后,会执行ready()
//相当于是onload()
$(function(){
//当页面dom对象加载后,给对象绑定事件,因为此时button对象已经在内存中创建好了,才能使用
$("#btn1").click(function(){
//过滤器
var obj = $("div:first");
obj.css("background","red");
})
})
//绑定btn2的事件
$(function(){
$("#btn2").click(function(){
var obj = $("div:last");
obj.css("background","green");
})
})
//绑定btn3的事件
$(function(){
$("#btn3").click(function(){
var obj = $("div:eq(3)");
obj.css("background","blue");
})
})
//绑定btn4的事件
$(function(){
$("#btn4").click(function(){
var obj = $("div:lt(3)");
obj.css("background","orange");
})
})
//绑定btn5的事件
$(function(){
$("#btn5").click(function(){
var obj = $("div:gt(3)");
obj.css("background","yellow");
})
})
</script>
<div id="one">我是div-0</div>
<div id="two">我是div-1</div>
<div>我是div-2
<div>我是div-3</div>
<div>我是div-4</div>
</div>
<div>我是div-5</div>
<br/>
<span>我是sapn</span>
<br/>
<input type="button" value="获取第一个div" id="btn1" /><br>
<input type="button" value="获取最后一个div" id="btn2" /><br>
<input type="button" value="获取下标为3的div" id="btn3" /><br>
<input type="button" value="获取下标3前面的div" id="btn4" /><br>
<input type="button" value="获取下标3后面的div" id="btn5" /><br>
</body>
3、表单属性过滤器
使用dom对象的状态作为筛选条件,定位dom对象
(1)$(“选择器:enabled”)
语法:$(“选择器:enabled”)
定位可用的dom对象
(2)$(“选择器:disabled”)
语法:$(“选择器:disabled”)
定位不可用的dom对象
(3)$(“选择器:checked”)
语法:$(“选择器:checked”)
定位选中的dom对象
(4)$(“选择器>option:selected“)
语法:$(“选择器:>option:selected”)
定位下拉列表框选中选中的值
示例代码:
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
$(function(){
$("#btn1").click(function(){
//获取所有可以使用的text
var obj = $(":text:enabled");
//获取jquery数组值所有dom对象的value值
obj.val("Hello");
})
$("#btn2").click(function(){
//获取选中的checkbox
var obj = $(":checkbox:checked");
for(var i=0;i<obj.length;i++){
// alert(obj[i].value);//第一种方式
var jobj = $(obj[i]);//第二种方式
alert(jobj.val());
}
})
$("#btn3").click(function(){
//获取select选中的值
var obj = $("select>option:selected");
for(var i=0;i<obj.length;i++){
var dom = obj[i];
var jobj = $(dom);
alert(jobj.val());
}
})
})
</script>
<input type="text" value="text1" id="txt1" /><br>
<input type="text" value="text2" id="txt2" disabled="true"/><br>
<input type="text" value="text3" id="txt3" /><br>
<input type="text" value="text4" id="txt4" disabled="true"/><br>
<br>
<input type="checkbox" value="游泳" />游泳<br>
<input type="checkbox" value="健身" checked />健身<br>
<input type="checkbox" value="电子游戏" checked />电子游戏<br>
<br>
<select id="yuyan">
<option value="java">java语言</option>
<option value="go" select >go语言</option>
<option value="python">python语言</option>
</select>
<br>
<br>
<input type="button" value="设置可以的text的value是hello" id="btn1" /><br>
<button id="btn2">显示选中的复选框的值</button><br>
<button id="btn3">获取select选中的值</button>
</body>
六、函数
1、val()
操作对象的value属性值
2、text()
操作标签的文本内容
3、attr()
操作对象的value,文本以外的属性,例如:转换图片
4、remove()
删除dom对象和它的子对象,例如:删除多选框全部内容
5、empty()
删除dom的子对象
6、apppend()
添加dom对象
7、html()
操作文本标签,和JS中的innerHTML的作用一样
8、each()
循环函数,还可以循环数组,JSON对象,jquery对象
- 静态函数调用:$.each(要遍历的对象,function(index,element){处理程序})
- 使用jquery对象调用:jquery对象.each(function(index,element){处理程序})
示例代码1:
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
$(function(){
$("#btn1").click(function(){
//读取第一个文本框的值
//val()获取dom数组中第一个对象的value属性值
var obj = $(":text").val();
alert(obj);
})
$("#btn2").click(function(){
//设置所有的text的value为新值
var obj = $(":text").val("三国演义");
})
$("#btn3").click(function(){
//获取div,text()参数,获取文本值,连接成字符串
alert($("div").text());
})
$("#btn4").click(function(){
//设置div的文本
var obj = $("div").text("给div文本赋值");
})
$("#btn5").click(function(){
//读取相片属性的值
alert($("img").attr("src"));
})
$("#btn6").click(function(){
//设置照片属性的值
$("img").attr("src","img/a.jpg.jpeg");
})
})
</script>
<input type="text" value="刘备" id="txt1" />
<input type="text" value="关羽" id="txt2" /><br>
<input type="text" value="张飞" id="txt3" /><br>
<br>
<div>我是第一个div</div>
<div>我是第二个div</div>
<div>我是第三个div</div>
<br>
<img src="img/aa972d47dec755eea813c22d2d42870d.jpeg" id="img" />
<br>
<input type="button" value="获取第一文本框的值" id="btn1" /><br>
<input type="button" value="设置所有的text的value为新值" id="btn2" /><br>
<input type="button" value="获取div,text()参数,获取文本值,连接成字符串" id="btn3" /><br>
<input type="button" value="设置div的文本" id="btn4" /><br>
<input type="button" value="读取相片属性的值" id="btn5" /><br>
<input type="button" value="设置相片属性的值" id="btn6" /><br>
</body>
示例代码2:
<body>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
//在dom对象创建好后,绑定事件
$(function(){
$("#btn1").click(function(){
//使用remove:删除父与子所有的dom对象
$("select").remove();
})
$("#btn2").click(function(){
//使用empty 删除子dom对象
$("select").empty();
})
$("#btn3").click(function(){
//使用append,增加dom对象
$("div").append("<input type='button' value='新增加的按钮'>");
})
$("#btn4").click(function(){
//使用html()函数,获取数组中第一个dom对象的文本值(innerHTML)
alert($("span:first").text());//我是mysql数据库
alert($("span:first").html());//我是mysql数据库
})
$("#btn5").click(function(){
$("span:first").text("我是张三!")
$("span:first").html("我是张三!")
})
$("#btn6").click(function(){
//循环普通数组,非dom数组
var arr = [12,58,35];
$.each(arr,function(index,element){
alert("循环变量" + index + "=========数组成员" + element);
})
})
$("#btn7").click(function(){
//循环json
var json = {"name":"张三","age":"20"};
$.each(json,function(i,n){
alert("i的key值=" + i + ",n的值value=" + n);
});
})
$("#btn8").click(function(){
//循环dom数组
var domArray = $(":text");
$.each(domArray,function(i,n){
alert("i= " + i + " ,n=" + n.value);
})
})
$("#btn9").click(function(){
//循环jquery数组
$(":text").each(function(i,n){
alert("i= " + i + " ,n=" + n.value);
})
})
})
</script>
<input type="text" value="刘备" id="txt1" /><br>
<input type="text" value="关羽" id="txt2" /><br>
<input type="text" value="张飞" id="txt3" /><br>
<select>
<option value="老虎">老虎</option>
<option value="狮子">狮子</option>
<option value="豹子">豹子</option>
</select>
<br>
<br>
<select>
<option value="亚洲">亚洲</option>
<option value="欧洲">欧洲</option>
<option value="美洲">美洲</option>
</select>
<br>
<br>
<span>我是mysql <b>数据库</b></span>
<br>
<span>我是jdbc</span>
<br>
<br>
<div id="father">我是第一个div</div>
<br>
<input type="button" value="使用remove删除父和子对象" id="btn1" /><br>
<input type="button" value="使用empty删除子对象" id="btn2" /><br>
<input type="button" value="使用appand,增加dom" id="btn3" /><br>
<input type="button" value="使用获取第一个dom的文本值" id="btn4" /><br>
<input type="button" value="设置span的dom文本值" id="btn5" /><br>
<input type="button" value="循环普通数组" id="btn6" /><br>
<input type="button" value="循环json" id="btn7" /><br>
<input type="button" value="循环dom数组" id="btn8" /><br>
<input type="button" value="循环jquery对象" id="btn9" /><br>
</body>
七、事件
1、绑定事件
$(选择器).事件名称(事件的处理函数)
$(选择器):定位dom对象, dom对象可以有多个, 这些dom对象都绑定事件了
事件名称:就是js中事件去掉on的部分, 例如 js中的单击事件 onclick(),
jquery中的事件名称,就是click,都是小写的。
事件的处理函数:就是一个function ,当事件发生时,执行这个函数的内容。
例如给id是btn的按钮绑定单击事件
$("#btn").click(funtion(){
alert("btn按钮单击了")
})
2、on绑定事件
$(选择器).on( 事件名称 , 事件的处理函数)
事件名称: 就是js事件中去掉on的部分, 例如js中onclick ,这里就是click
事件的处理函数: function 定义。
例如,
<input type="button" id="btn">
$("#btn").on("click", function() { 处理按钮单击 } )