JQuery学习笔记,点击按钮加载更多的图片

利用点击按钮模拟某京,某宝,滚动页面加载图片的效果,代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Ajax请求</title>
	</head>
	<body>
		<button id="load">加载更多</button>
		<div id="photos">
		</div>
		<script>
			(()=>{
				const photos=document.querySelector("#photos")
				// const.photos=document.getElementById('photos')
				const loadBtn=document.getElementById('load')
                //URL 需要自己申请
				const url='https://apis.tianapi.com/esports/index?key=b28784d07b8a040597XXXX...5&page='
				var page=1
				loadBtn.addEventListener('click',()=>{
					page+=1
					//创建异步请求对象
					//https://www.tianapi.com/#meinv
					let xhr=new XMLHttpRequest()
					//https://www.tianapi.com/gethttp/265
					//open方法的第一个参数是请求的类型,第二个是请求的URL,第三个参数必须设置为true,表示发出的异步请求
					//URl 的结尾加上&num=30表示一次拿30个数据
					xhr.open('get',url+page,
					true)//true表示发的是异步请求
					//绑定事件回调函数,在收到Server返回的数据后要对页面进行局部刷新
					//就绪状态改变的事件
					xhr.addEventListener('readystatechange',()=>{
						//判断请求是否成功
						//405访问方法错,403没有访问权限,401未授权;4--请求错
						//5--Server错了(一般看不到,一般是Server升级维护中)
						//3--重定向(曾经请求过,数据还是原来的数据)
						if(xhr.readyState ==4 &&xhr.status==200){
							alert(xhr.responseText)
							//alert(xhr.responseText)传出的是字符string
							//将返回的JSON字符串解析成Javascript对象
							let json=JSON.parse(xhr.responseText)
							json.result.newslist.forEach((mm)=>{
								//console.log(mm.picUrl)
								let img=document.createElement('img')
								img.src=mm.picUrl
								img.width='300'
								console.log(img)
								photos.insertBefore(img, photos.firstElementChild)
								
							})
							
						}
					})
					//发出异步请求
					xhr.send()
				})
				
			})()
		</script>
	</body>
</html>

运行完成可以点击每一次按钮加载不同的图片

使用JQuery方法改写后的代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Ajax请求</title>
	</head>
	<body>
		<button id="load">加载更多</button>
		<div id="photos">
		</div>
		<script src='js/jquery-3.7.1.min.js'></script>
		<script>
			$(()=>{
				const url='https://apis.tianapi.com/esports/index?key='
				var page=0
				$('#load').on('click',(evt)=>{
					page+=1
					let date={"key"="b28..........575","page":page}
					//$对象getJSON方法可以执行异步请求(get请求)获得服务器返回的JSON格式
					//第一个参数是请求的URL(统一资源定位符)
					//第二个参数是要发送给Server的数据(JSON格式),如果没有数据发送给服务器可以为空
					//第三个参数是请求成功服务器返回数据之后要执行的回调函数,其参数为服务器的JSON对象
					$.getJSON(url,data,(json)=>{
						json.result.newslist.forEach((mm)=>{
							console.log(mm.picUrl)
							$('#photos').prepend($('<img>').attr('src',mm.picUrl).attr('width','300'))
							
						})
					})
				})
			})
		</script>
	</body>
</html>

Jquery 的$.ajax({})使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Ajax请求</title>
	</head>
	<body>
		<button id="load">加载更多</button>
		<div id="photos">
		</div>
		<script src='js/jquery-3.7.1.min.js'></script>
		<script>
			$(()=>{
				const url='https://apis.tianapi.com/esports/index'
				var page=0
				$("#load").on("click",(evt)=>{
					page += 1
					let data={"key":"b287.......75","page":page}
					$.ajax({
						"url":url,
						"type":"get",//请求方式:可以是post,get,delete,put,patch 默认是get请求,可以省略不写
						"data":data,
						"datatype":"json",//返回的数据类型,XML:XML类型;text:文本类型 默认是JSON格式,可以省略不写
						"headers":{},//请求头没有东西可以忽略不写
						"success":(json)=>{
							json.result.newslist.forEach((mm)=>{
									console.log(mm.picUrl)
									$('#photos').prepend($('<img>').attr('src',mm.picUrl).attr('width','300'))
									
								})
							
						},//请求成功了干什么
						"errors":(error)=>{},//请求失败了干什么 可以省略
					})
					
				})
					
			})
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值