IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Java学习-jQuery -> 正文阅读

[JavaScript知识库]Java学习-jQuery

目录

1 前言

2 概述

2.1 jQuery是什么

2.2 jQuery在js中的使用

2.3 dom对象和jQuery对象

3 jQuery的基本语法

3.1 选择器

3.2 表单选择器

3.3 过滤器

3.4 表单属性过滤器

4 函数

4.1 val

4.2 text

4.3 attr

4.4 remove

4.5 empty

4.6 append

4.7 html

4.8 each

5 jQuery中的事件

6 使用jQuery实现ajax


1 前言

在学ajax的时候我们就接触了jQuery,但当时觉得有点混乱,也没有认真学习,这次专门再学一次吧。

我们发现一个问题:在我们写js代码的时候,总是会写很多重复的内容,就比如最简单的获取根据id获取元素(getElementById),我们经常使用这个,但是这玩意很长,每次都写很麻烦,是不是可以简化一下

		<script type="text/javascript">
			function fun1(){
				//var text1 = document.getElementById("text1")
				var text1 = a("text1")
				alert(text1.value)
			}
			function fun2(){
				//var text2 = document.getElementById("text2")
				var text2 = a("text2")
				alert(text2.value)
			}
			function a(obj){
				var objElt = document.getElementById(obj)
				return objElt
			}
		</script>
		
		<input type="text" id="text1" />
		<input type="button" value="单击按钮1" onclick="fun1()" /> <br>
		<input type="text" id="text2" />
		<input type="button" value="单击按钮2" onclick="fun2()" />

如上,我们将根据id获取元素封装为一个 函数,这样我们直接调用这个函数就简单很多,并且函数名我们可以简化为一个字母,但是字母对我们来说经常使用,这里我们就可以使用“$”符号,它很特殊我们也基本上用不到。

2 概述

2.1 jQuery是什么

jQuery是一款JavaScript库,封装了JavaScript相关方法调用,简化JavaScript对HTML DOM操作

可以登录官网下载查看jQuery信息:jQuery

2.2 jQuery在js中的使用

$(document).ready(function(){
	alert("dhiwgfew")
})

如上,其中$就是函数名,document为函数的参数,$(document)的作用为将document对象变成jQuery函数库可以使用的对象。ready是jQuery中的函数,相当于js中的load事件,那function中的内容就表示onload执行后需要执行的内容。

好消息是上面代码可以简化为:

$(function(){
	alert("hello jquery")
})

2.3 dom对象和jQuery对象

dom对象:使用js语法创建的对象为dom对象,也就是js对象,比如:

  • var obj = document.getElementById("text1"),其中obj就是dom对象

jQuery对象:使用jQuery语法表示对象叫做jQuery对象,注意:jQuery表示的对象都是数组,例如

  • var jobj = $("#text1"),其中jobj就是jQuery对象,它是一个数组

dom对象和jQuery对象可以相互转换

  • dom转为jQuery:$(dom对象)
  • jQuery转为dom:从数组中获取第一个对象就是dom对象,使用[0]

演示:dom转为jQuery

		<script type="text/javascript">
			function reverse(){
				var btn = document.getElementById("btn")
				//转为jQuery对象
				var jbtn = $(btn)
				//alert(btn.value)
				alert(jbtn.val())
			}
		</script>
		<input type="button" id="btn" value="我是按钮" onclick="reverse()" />

jQuery转为dom:

		<script type="text/javascript">
			function reverse(){
				var btn = $("#btn")[0]
				alert(btn.value)
			}
		</script>

3 jQuery的基本语法

3.1 选择器

选择器:就是一个字符串,用来定位dom对象的,定位了dom对象就可以通过jQuery的函数操作dom对象。

常用的选择器:

  • id选择器:$("#对象的id值"),通过id找对象,id在当前页面中是唯一的
  • class选择器:$(".class样式名"),class表示css中的样式
  • 标签选择器:$("标签名称")

演示:

<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			//id选择器
			function fun1(){
				var idsel = $("#idsel")
				idsel.css("background-color","red")
			}
			//class选择器
			function fun2(){
				var classsel = $(".classsel")
				classsel.css("background-color","blue")
			}
			//标签选择器
			function fun3(){
				var spansel = $("span")
				spansel.css("background-color","green")
			}
			//div标签选择器
			function fun4(){
				var divsel = $("div")//div标签有两个,也就是说这个数组有两个内容
				divsel.css("background-color","gray")
			}
			function fun5(){
				var ssel = $("*")//div标签有两个,也就是说这个数组有两个内容
				ssel.css("background-color","yellow")
			}
			
		</script>
		<div id="idsel">id选择器</div><br />
		<div class="classsel">class选择器</div><br />
		<span>span选择器</span><br />
		<button onclick="fun1()">使用id选择器</button><br />
		<button onclick="fun2()">使用class选择器</button><br />
		<button onclick="fun3()">使用span标签选择器</button><br />
		<button onclick="fun4()">使用div标签选择器</button><br />
		<button onclick="fun5()">*标签选择器</button><br />
	</body>

选择器可以组合使用,比如$("#id选择器,标签选择器")

3.2 表单选择器

使用input标签的type属性值,定位dom对象的方式

语法:$(":type属性值")。例如$(":text"),选择的是所有的单行文本框。演示:

	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			function fun1(){
				var textObj = $(":text")
				alert(textObj.val())
			}
			function fun2(){
				var radioObj = $(":radio")//数组
				//取数组数据要循环
				for (var i = 0; i < radioObj.length; i++) {
					//转为js对象
					var domObj = radioObj[i]
					alert(domObj.value)
				}
			}
		</script>
		<input type="text" value="这是text" /><br>
		<input type="radio" value="这是radio=男" /><br>
		<input type="radio" value="这是radio=女" /><br>
		<button onclick="fun1()">测试text</button><br>
		<button onclick="fun2()">测试radio</button><br>
	</body>	

3.3 过滤器

在定位了dom对象后,根据一些条件筛选dom对象。过滤器不能单独使用,必须和选择器一起使用

  • $("选择器:first"):第一个dom对象
  • $("选择器:last"):数组中的最后一个dom对象
  • $("选择器:eq(数组的下标)"):获取指定下标的dom对象
  • $("选择器:lt(下标)"):获取小于下标的所有dom对象
  • $("选择器:gt(下标)"):获取大于下标的所有dom对象

演示:注意这里使用了事件,也就是js中的事件换成jQuery语法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div{
				background-color: gray;
			}
		</style>
	</head>
	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#btn1").click(function(){
					var obj = $("div:first")
					obj.css("background","red")
				})
				
				$("#btn2").click(function(){
					var obj = $("div:last")
					obj.css("background","blue")
				})
				$("#btn3").click(function(){
					var obj = $("div:eq(2)")
					obj.css("background","yellow")
				})
				$("#btn4").click(function(){
					var obj = $("div:lt(2)")
					obj.css("background","green")
				})
				$("#btn5").click(function(){
					var obj = $("div:gt(2)")
					obj.css("background","pink")
				})
			})	
		</script>
		
		<div>我是div--1</div>
		<div>我是div--2</div>
		<div>我是div--3</div>
		<div>我是div--4</div>
		<br>
		<span>我是span</span><br />
		<button id="btn1">获取第一个dom对象</button><br>
		<button id="btn2">获取最后一个dom对象</button><br>
		<button id="btn3">获取下标为2的dom对象</button><br>
		<button id="btn4">获取下标小于2的dom对象</button><br>
		<button id="btn5">获取下标大于2的dom对象</button><br>
	</body>
</html>

3.4 表单属性过滤器

  • $(":text:enabled"),选择可用的文本框
  • $(":text:disabled"),选择不可用的文本框
  • $(":checkbox:checked"),复选框选中的元素

演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#btn1").click(function(){
					var obj = $(":text:enabled")
					//设置jQuery数组值所有对象的value为hello
					obj.val("hello")
				})
				$("#btn2").click(function(){
					//获取子元素要这样获取
					var obj = $("select>option:selected")
					alert(obj.val())
				})
				$("#btn3").click(function(){
					//获取子元素要这样获取
					var obj = $(":checkbox:checked")
					for (var i = 0; i < obj.length; i++) {
						alert(obj[i].value)
					}
				})
				
			})
		</script>
		<input type="text" value="我是text1" disabled /><br>
		<input type="text" value="我是text2"  /><br>
		<input type="text" value="我是text3"  /><br>
		<input type="text" value="我是text4" disabled /><br>
		<select>
			<option>抽烟</option>
			<option selected>喝酒</option>
			<option>烫头</option>
		</select>
		<br>
		<input type="checkbox" value="chouyan"/>抽烟<br />
		<input type="checkbox" value="hejiu" />喝酒<br />
		<input type="checkbox" value="tangtou"/>烫头<br />
		<br>
		<button id="btn1">设置jQuery数组值所有对象的value为hello</button><br>
		<button id="btn2">获取下拉框选中的元素</button><br>
		<button id="btn3">获取复选框选中的元素</button><br>
	</body>
</html>

4 函数

4.1 val

  • val函数可以操作DOM对象的value属性
  • $(选择器).val():无参数调用形式,读取数组中第一个DOM对象的value值
  • $(选择器).val(值):有参数,对数组中所有DOM对象的value属性值进行统一赋值

4.2 text

  • 对text内容操作
  • $(选择器).text():无参数调用,读取数组中所有的DOM对象的文字显示内容,将得到的内容拼接位字符串返回
  • $(选择器).text(值):有参数方式,对所有DOM对象的文字显示内容进行统一赋值

4.3 attr

  • 对val,text之外的其它属性操作
  • $(选择器).attr("属性名"):获取DOM数组第一个对象的属性值
  • $(选择器).attr("属性名","值"):对数组中所有DOM对象属性值设为新值

以上三个函数的演示如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#btn1").click(function(){
					alert($(":text").val())
				})
				$("#btn2").click(function(){
					$(":text").val("你好,text")
				})
				$("#btn3").click(function(){
					alert($("div").text())
				})
				$("#btn4").click(function(){
					$("div").text("你好,div")
				})
				$("#btn5").click(function(){
					alert($("a").attr("href"))
				})
				$("#btn6").click(function(){
					$("a").attr("href","http://www.taobao.com")
				})
			})
		</script>
		<input type="text" value="我是text1" /><br>
		<input type="text" value="我是text2" /><br>
		<input type="text" value="我是text3" /><br>
		<div>我是div-1</div>
		<div>我是div-2</div>
		<div>我是div-3</div>
		<br>
		<a href="http://www.baidu.com">百度</a>
		<br>
		<button id="btn1">得到text属性第一个value值</button><br>
		<button id="btn2">修改text属性所有value值为你好,text</button><br>
		<button id="btn3">得到div的text内容</button><br>
		<button id="btn4">修改div中的text内容为你好,div</button><br>
		<button id="btn5">获取超链接的href</button><br>
		<button id="btn6">修改超链接的href</button><br>
	</body>
</html>

4.4 remove

$(选择器).remove():将数组中所有DOM对象及其子对象一并删除

4.5 empty

$(选择器).empty():将数组中所有DOM对象的子对象删除

4.6 append

为数组中所有DOM对象添加子对象

以上三个函数演示:

	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#btn1").click(function(){
					$("select").remove()
				})
				$("#btn2").click(function(){
					$("select").empty()
				})
				$("#btn3").click(function(){
					$("select").append("<option>白嫖</option>")
				})
			})
		</script>
		<select>
			<option>抽烟</option>
			<option>喝酒</option>
			<option>烫头</option>
		</select>
		<br>
		<button id="btn1">将数组中所有DOM对象及其子对象一并删除</button><br>
		<button id="btn2">将数组中所有DOM对象的子对象删除</button><br>
		<button id="btn3">为数组中所有的DOM对象添加子对象</button><br>	
	</body>

4.7 html

  • 设置或返回被选元素的内容
  • $(选择器).html():无参数调用方法,获取DOM数组第一个匹配元素的内容
  • $(选择器).html(值):有参数调用方法,设置DOM数组中所有元素的内容,注意这个html修改内容和innerHTML功能一样,都是可以传入html格式的,然后它会按照html语法修改内容
	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#btn1").click(function(){
					alert($("div").html())
				})
				$("#btn2").click(function(){
					$("div").html("你好<b>王德发</b>")
				})
			})
		</script>
		<div>我是div-1</div>
		<div>我是div-2</div>
		<div>我是div-3</div>
		<br>
		<button id="btn1">获取第一个div内容</button>
		<button id="btn2">修改所有div内容</button>
	</body>

4.8 each

  • each可以对数组,json和dom数组进行遍历,对每个元素调用一次函数
  • 语法1:$.each(要遍历的对象,function(index,element){处理程序})
  • 语法2:jQuery对象.each(function(index,element){处理程序})
  • index为数组的下标,element为数组的对象
		<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
		<script type="text/javascript">
			$(function(){
				var arr = [1,2,3]
				$("#btn1").click(function(){
					$.each(arr,function(index,element){
						alert("下表为:"+index + "值为:"+element)
					})
				})
				var json = {"name":"王德发","password":"123561"}
				$("#btn2").click(function(){
					$.each(json,function(index,element){
						alert(index+":"+element)
					})
				})
				var obj = $(":text")
				$("#btn3").click(function(){
					$.each(obj,function(index,element){
						alert("下标为:"+index + "内容为:"+element.value)
					})
				})
			})
		</script>
		<input type="text" value="你好王德发" /><br>
		<input type="text" value="你好张麻子" /><br>
		<input type="text" value="你好黄四郎" /><br>
		<button id="btn1">循环普通数组</button><br>
		<button id="btn2">循环JSON</button><br>
		<button id="btn3">循环dom数组</button><br>

5 jQuery中的事件

$(选择器).事件名称。这里的事件名称就是js中的事件去掉on,比如给按钮绑定单击事件:

$("#btn").onclick(function(){
		
})

js中的onload事件可用$(function()){?}代替,以后我们都用这种方式写jQuery,就像写js一样,不过换了个语法

6 使用jQuery实现ajax

在使用jQuery之前,我们实现ajax请求需要实现4个步骤,非常的麻烦,有三个方式实现ajax请求

  • $.ajax():jQuery中实现ajax的核心函数
  • $.post():使用post方式发送ajax请求
  • $.get():使用get方式发送ajax请求
  • $.post()和$.get()它们在内部都是调用的$.ajax()
  • $.ajax()的参数是一个JSON的结构

JSON结构的参数说明:

  • success:一个function,请求成功了,从服务器返回了数据,相当于js执行完statue==200,function的参数就是responseText
  • url:请求的地址
  • type:请求方式,get或者post,不区分大小写
  • async:默认是true,表示异步请求,可以不写
  • data:可以是字符串,数组,JSON,表示请求的参数和参数值,常用JSON格式的数据。就是请求的路径?后面穿的值
  • contentType:字符串,表示从浏览器向服务器发送的参数的类型,可以不写,如果想特定之处格式为JSON格式,可以写:application/json
  • dataType:表示期望从服务器端返回的数据格式,可以选择:xml、html、text、json
  • error:一个function,表示当请求发送错误时执行的函数

使用jQuery请求ajax

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
  $(function (){
      $("#btn").click(function (){
        var username = $("#username").val()
        $.ajax({
            url:"/ajax/queerest",
            data:{
                "username":username
            },
            dataType:"json",
            success:function (data){
                alert(data.name)
            }
        })
      })
  })
</script>
用户名:<input type="text" id="username">
<button id="btn">我是阿牛</button>
</body>
</html>

将ajax中写的省市联动案例改为jQuery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>省市联动</title>
</head>
<body>
<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">

    $(function (){
        $.ajax({
            url:"/ajax/ajaxrequest10",
            dataType:"json",
            success:function (data){
                //alert(data)
                $("#province").append("<option value=''>--请选择省份--</option>")
                $.each(data,function (i,n){
                    $("#province").append("<option value='"+n.code+"'>"+n.name+"</option>")
                })
            }
        })
        $("#province").change(function (){
            $.ajax({
                url:"/ajax/ajaxrequest10",
                dataType: "json",
                data:{
                    "pcode":this.value
                },
                success:function (data){
                    $("#city").empty()
                    $("#city").append("<option value=''>--请选择城市--</option>>")
                    $.each(data,function (i,n){
                        $("#city").append("<option value='"+n.code+"'>"+n.name+"</option>>")
                    })
                }
            })
        })
    })

</script>

<select id="province">

</select>
<select id="city">

</select>
</body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:06:34  更:2022-10-22 21:10:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 17:15:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码