web前端基础 - 08 JQuery介绍和使用

本文介绍了JQuery的基础知识,包括如何引入JQuery库,详细阐述了选择器的使用,如id、类和属性选择器,并讨论了过滤选择器和选择集转移。此外,还讲解了JQuery中的属性操作,如获取标签属性和操作类名样式,以及事件处理。同时,文章重点探讨了JQuery的特殊效果和动画,如fade、slide系列方法,展示了如何通过动画改变元素的宽度。
摘要由CSDN通过智能技术生成

一、JQuery引入

jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。

下载方式:https://code.jquery.com/jquery-3.4.1.min.js

打开当前链接,右键选择另存为即可。

引入方式

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

加载方式

<script>
	window.onload = function(){
		var $div = $("#test");
		alert($div);
	}
</script>

<script>
	$(document).ready(function(){
		var $div = $("div");
		alert($div);
	})
</script>

<script>
	$(function(){
		var $div = $("div");
		alert($div);
	})
</script>

$是javascript中封装的一个函数,专门用来获取DOM元素。

二、选择器详解

2.1 JQuery选择器

1.id选择器

<style>
	#test{
		color: red;
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		var $div = $("#test");
		alert($div.css("color"));
	})
</script>

<body>
	<div id="test">这是一个div元素</div>
</body>

2.类选择器

<style>
	.box{
		color: green;
		font-size: 30px;
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>
	$(function(){
		var $box = $(".box");

		// 只显示行内样式的属性值
		alert($box.css("font-size"));
	})
</script>

<body>
	<div class="box" style="font-size: 20px;">hello world</div>
</body>

3.包含选择器

<style>
	.list li{
		background-color: pink;
	}
</style>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>
	$(function(){
		var $lis = $(".list li");
		alert($lis.css("background-color"))

		// 修改li标签的样式
		$lis.css({'background-color':'gray','color':'red'});
	})
</script>

<body>
	<ul class="list">
		<li>美元</li>
		<li>欧元</li>
		<li>人民币</li>
		<li>日元</li>
	</ul>
</body>

4.name属性选择器

<style>
	input[name="username"]{
		background-color: green;
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>
	$(function(){
		var $username = $("input[name='username']");
		alert($username.css("background-color"))
	})
</script>

<body>
	<form action="">
		<input type="text" name="username" value="">
	</form>
</body>

2.2 过滤选择器

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		$('div').css({"backgroundColor":"red"});

		// 选择含有p标签的div元素
		$('div').has('p').css({backgroundColor:"gray"});


		// 选择类名不是MyClass的div元素

		$('div').not(".myclass").css({backgroundColor:"yellow"});

		// 选择类名为myClass的div元素
		$('div').filter(".myclass").css({backgroundColor:"green"});

		// 选择第6个div元素-->下标从0开始

		$('div').eq(5).css({"font-size":"30px"});
	})
</script>

<body>
	<div>1</div>
	<div><p>2</p></div>
	<div class="myclass">3</div>
	<div class="myclass">4</div>
	<div>5</div>
	<div>6</div>
	<div>7</div>
	<div>8</div>	
</body>

2.3 选择集转移

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		// 获取被选择div元素之前的一个同辈元素
		$('div').eq(5).prev().css({"font-size":"20px"});

		// 获取被选择div元素之前的所有同辈元素
		$('div').eq(5).prevAll().css({"backgroundColor":"red"});

		// 获取被选择div元素之后的一个同辈元素
		$('div').eq(5).next().css({"font-size":"30px"})

		// 获取被选择div元素之后的所有同辈元素
		$('div').eq(5).nextAll().css({"backgroundColor":"gray"})

		// 获取被选择div元素的父元素
		alert($('div').eq(5).parent());

		// 获得被选择元素所有子元素
		$('div').has('p').children().css({backgroundColor:"gray"});

		// 获得被选择div元素的子元素中类名为myClass的元素
	    $('div').not('.myclass').find('.myclass').css({"backgroundColor":"pink"});
	})
</script>

<body>
	<div>1</div>
	<div><p>2</p></div>
	<div class="myclass">3</div>
	<div class="myclass">4</div>
	<div><h1 class="myclass">5</h1></div>
	<div>6</div>
	<div>7</div>
	<div>8</div>	
</body>

JQuery的容错机制

jquery有容错机制所以即使没有找到元素,也不会出错。

可以用length属性来判断是否找到了元素。

length=0->没选择到。l
ength大于0->选择到了

三、属性操作

3.1 获取标签属性

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>
	$(function(){

		// 覆盖式修改标签内容--->百度一下修改为链接
		$a=$('a');
		$a.html("链接")

		// 获取标签的值
		$inp = $('input')
		console.log($inp.val());


		// 获取标签的官方指定属性
		$img = $('img');
		// src属性值为绝对路径
		console.log($img.prop("src"));
		// 修改官方指定属性的值
		$img.prop({"src":"F:\\Amyweb\\魏无羡.jpg"})
		console.log($img.prop("src"));

		// 获取自定义属性的值
		console.log($img.attr("xxx"))
		// 添加自定义属性的值
		$img.attr({"mmm":"nnnn"})
		console.log($img.attr("mmm"))
		// 修改自定义属性的值
		$img.attr({"xxx":"nnnn"})
		console.log($img.attr("xxx"))

	})
</script>

<body>
	<a href="http://www.baidu.com">百度一下</a>
	<img src="123.jpg" alt="" xxx="yyy">
	<input type="text" value="123">
</body>

3.2 操作类名样式

<style>
	.box{
		width: 200px;
		height: 200px;
		background-color: orange;
	}

	.box1{
		font-size: 30px;
	}
	.box2{
		color: blue;
	}
</style>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>
	$(function(){
		// 为div添加class为box1的css样式
		$div = $('.box');
		// $div.addClass('box1');
		// 为div添加class为box1,box2的css样式
		$div.addClass('box1 box2');
		

		// 移除div中class为box1的css样式
		$div.removeClass('box1');
		// 移除iv中class为box1,box2的css样式
		$div.removeClass('box1 box2');
	}
</script>

<body>
<div class="box">我是robot</div>
</body>

选项卡案例

<style>
	.btns input{
		width: 100px;
		height: 40px;
		border: 0;
	}
	.btns .current{
		background-color: pink;
	}
	.box div{
		width:400px;
		height: 300px;
		background-color: pink;
		display: none;
		text-align: center;
		font-size: 40px;
		line-height: 300px;
	}
	.box .active{
		display: block;
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		var $btn = $('.btns input');
		var $div = $('.box div')
		$btn.click(function(){

			// $(this) 当前点击的input按钮
			$(this).addClass('current');
			// 同级元素移除current样式
			$(this).siblings().removeClass('current');

			// 和他下标相同的div元素添加active类名样式
			// 当前div同级的其他div元素移除active类名样式
			$div.eq($(this).index()).addClass('active').siblings().removeClass('active');
		})


	})
</script>

<body>
	<div class="btns">
		<input type="button" value="我的关注" class="current">
		<input type="button" value="导航">
		<input type="button" value="收藏">
	</div> 

	<div class="box">
		<div class="active"><span>选项卡内容1</span></div>
		<div><span>选项卡内容2</span></div>
		<div><span>选项卡内容3</span></div>
	</div>		
</body>

四、事件

<style>
	.box{
		background-color: yellow;
		width: 200px;
		height:200px;
	}
	.box .son{
		background-color: blue;
		width:100px;
		height: 100px;
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		var $inp1 = $('#inp1');
		// 直接聚焦到input输入框
		$inp1.focus();
		var $inp2 = $('#inp2');

		// 内容修改+失焦-->触发change事件
		$inp2.change(function(){
			$val = $(this).val();
			alert($val)
		})


		var $div=$('.box');

		鼠标悬停到父子元素都会触发mouseover事件
		$div.mouseover(function(){
			alert('移入');
		})
		// 鼠标移出父子元素都会触发
		$div.mouseout(function(){
			alert('移出');
		})


		鼠标悬停到子元素不会触发mouseenter
		$div.mouseenter(function(){
			alert('移入')
		})
		// 鼠标移出子元素不会触发mouseleave
		$div.mouseleave(function(){
			alert('移出')
		})


		同时完成mouseenter和mouseleave事件
		$div.hover(function(){
			alert('移入');
		},function(){
			alert('移出');
		})

		// 捕获窗口大小
		$(window).resize(function(){
			var $w = $(window).width();
			document.title = $w
		})

	})		
</script>

<body>
	<div class="box">
		<div class="son"></div>
	</div>

	<form action="">
		<!-- autofocus属性 自动聚焦到inp1输入框 -->
		<input type="text" id="inp1">
		<input type="text" id="inp2">
	</form>
</body>

五、特殊效果

fadeOut() // 淡出
fadeToggle() // 切换淡入淡出
hide() // 隐藏元素
show() // 显示元素
toggle() // 切换元素的可见状态
slideDown() // 向下展开
slideUp() // 向上卷起
slideToggle() // 依次展开或者卷起某个元素

<style>
	.box{
		width: 300px;
		height: 300px;
		background-color: gold;
		display: none;
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		var $div = $('.box')
		var $btn = $('.btn')
		$btn.click(function(){
			// 淡入 css样式-->display:none
			$div.fadeIn();
			// 淡出 css样式--》不添加display
			$div.fadeOut();
			// 淡入淡出交替执行
			$div.fadeToggle();

			// 向下展开 css样式-->display:none
			$div.slideDown();
			// 向上收起 css样式--》不添加display
			$div.slideUp();
			// 交替执行展开收起
			$div.slideToggle();
		})
	})
	
</script>

<body>
	<div class="box"></div>
	<button class="btn">渲染效果</button>
</body>

六、动画

通过动画实现增加div元素的宽度

<style>
	.box{
		width: 300px;
		height: 300px;
		background-color: gold;
		/*display: none;*/
	}
</style>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
	$(function(){
		var $div = $('.box')
		var $btn = $('.btn')
		$btn.click(function(){
			$div.animate({'width':'400px'},1000)
			
			// 先自动增减高400px,再增加宽400px
			$div.animate({'height':'400px'},1000,function(){
					 $div.animate({'width':'400px'});
			});
		})
	})
	
</script>

<body>
	<div class="box"></div>
	<button class="btn">渲染效果</button>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值