jQuery
一、jQuery简介,版本选择
jQuery是原生js的封装库,将原生js方法进行封装简化了原生js的操作
版本类型:x、2.x、3.x 2.x和3.x不兼容低版本浏览器
jQuery的使用:
导入库文件:在header标签内导入库文件。在代码中打印$,如果没有报错代表导入成功
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!-- 导入库文件 -->
<script type="text/javascript" src="./jquery-1.8.3.min.js"></script>
</head>
<body>
<script type="text/javascript">
//检测是否导入成功
console.log($);
</script>
</body>
</html>
二、选择器
基本选择器:
过滤选择器:
body代码部分:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>第一个完整的静态页面</title>
<script type="text/javascript" src="./jquery-1.8.3.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;list-style: none}
.header{
min-width:960px;
overflow: hidden;
border:1px solid #c4c4c4;
}
.center{
width:960px;
height:90px;
margin:0 auto;
}
.header .logo{
margin-top:10px;
float:left;
}
.nav_top{
width:685px;
float:right;
/*background:red;*/
margin-top:10px;
margin-left:10px;
}
.nav_top li{
float:left;
width:90px;
border:1px solid green;
line-height:65px;
margin-left:-1px;
text-align: center;
}
.content{
width:960px;
min-height:500px;
margin:10px auto;
overflow: hidden;
border:#c4c4c4 solid 1px;
}
.content ul{
margin-top:10px;
margin-bottom:10px;
}
.content li{
width:225px;
height:300px;
border:1px solid #c4c4c4;
float:left;
margin-left:10px;
margin-top:10px;
margin-bottom:10px;
}
.footer{
width:960px;
min-height:50px;
margin:0 auto;
border:#c4c3c4 solid 1px;
text-align: center;
line-height: 50px;
}
</style>
</head>
<body>
<div class="header">
<div class="center">
<div class="logo">
<img src="./image/logo.png">
</div>
<ul class="nav_top">
<li id="item1">IT</li>
<li>在线</li>
<li id="item3">服务</li>
<li>就业</li>
<li>信息</li>
<li>资队</li>
<li>关于</li>
</ul>
</div>
</div>
<div class="content">
<ul>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li class="item5">
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
<li>
<img src="./image/1.jpg" width="100%">
</li>
</ul>
</div>
<div class="footer">
COPYRIGHT©U
</div>
</body>
</html>
获取第一个元素 :first
获取最后一个元素 :last
获取指定索引的元素 eq
关系选择器:
获取所有的子元素 children()
获取上一个同级元素 prev()
获取下一个同级元素 next()
获取所有除自己以外的同级元素 silbings()
获取父元素 parent()
获取先辈元素 parents()
在父元素中查找指定的子元素 find()
三、元素操作
css设置
使用css()方法来操作样式
一次设置一个样式:$(el).css('样式的key','设置的值')
一次设置多个样式:$(el).css({})
文本操作
innerHTML---->html()
innerText---->text()
表单值的操作
value属性---->val()
属性的操作
attr()
删除:removeAttr()
类class属性的操作:
addClass()
removeClass()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="./jquery-1.8.3.min.js"></script>
<style>
.item1{
border: 3px solid red;
}
.item2{
font-size: 30px;
}
</style>
</head>
<body>
<div class="box">哈哈啊哈</div>
<input type="text" value="来呀">
<br>
<img src="./image/1.jpg" alt="">
<script type="text/javascript">
//设置css样式
//一次设置一个样式
// $('.box').css('width','200px');
// $('.box').css('height','200px');
// $('.box').css('background-color','red');
//一次设置多个样式
// $('.box').css({width:'200px',height:'200px',backgroundColor:'green'});
//文本内容的操作,结果和原生的innerHTML,innerText一样
//html()
// $('.box').html('<em>i love you</em>');
//text()
//$('box').text('<b>听说</b>');
// 表单值的操作
//获取
// console.log($('input').val());
//设置
// $('input').val('嘿嘿嘿');
//属性的操作
//获取属性的值,传一个参数
console.log($('img').attr('src'));
//设置属性的值,一次设置一个
$('img').attr({alt:'呀呀呀呀',title:'emmmmmm'});
//删除属性
$('img').removeAttr('str');
//class属性的操作
//给.box追加类名,在原来的基础是追加,不会删除原来的类名
$('.box').addClass('item1 item2');
//删除类名,如果不传参数会将所有的类名都删掉
$('box').removeClass('item2');
</script>
</body>
</html>
案例:使用jQuery实现选项卡
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;padding: 0;list-style: none;
}
.wrap{
width: 300px;
height:300px;
border: 1px solid #c4c4c4;
}
.title{
overflow: hidden;
}
.title .active1{
background: pink;
}
.title li{
float: left;
width: 100px;
height: 50px;
background:#c4c4c4;
text-align: center;
line-height: 50px;
}
.content li{
height: 250px;
border: 1px solid red;
/*默认给所有的内容隐藏*/
display: none;
}
.content .active2{
display:block;
}
</style>
<script src="./jquery-1.8.3.min.js"></script>
</head>
<body>
<div class="wrap">
<ul class="title">
<li class="active1">话费</li>
<li>机票</li>
<li>酒店</li>
</ul>
<ul class="content">
<li class="active2">话费的内容</li>
<li>机票的内容</li>
<li>酒店的内容</li>
</ul>
</div>
<script type="text/javascript">
//给每个标题添加移入事件
$('.title li').mouseover(function(){
//移入谁给谁添加类名
//给当前移入li添加类名,获取所有同级的li 移除类名
$(this).addClass('active1').siblings().removeClass('active1');
//$(this).index() 获取当前元素的索引值
// console.log($(this).index());
$('.content li').eq($(this).index()).addClass('active2').siblings().removeClass('active2');
})
</script>
</body>
</html>
四、相关尺寸
获取元素相对文档的偏移位置:offset()
获取文档的滚动距离:scrollTop()、scrollLeft()
获取元素的宽度和高度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="./jquery-1.8.3.min.js"></script>
<style type="text/css">
*{margin: 0;padding: 0;}
body{
height: 2000px;
width: 2500px;
}
.box1{
width: 200px;
height: 200px;
background: #0f0;
padding: 20px;
border: 3px solid red;
}
.box2{
width: 300px;
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="bos1 box2"></div>
<script type="text/javascript">
//获取元素相对文档的偏移位置
//offset()返回的是一个包含top和left属性的对象
//获取box1相对于文档的位置
console.log($('.box1').offset());
console.log($('.box2').offset());
//获取文档的滚动距离
//scrollTop()获取文档的垂直方向的滚动距离,返回的是一个数字
console.log($(document).scrollTop());
//scrollLeft()文档的水平方向的滚动距离
console.log($(document).scrollLeft());
//获取元素的宽度和高度
//width() height()如果是多个元素对象获取的是第一个元素的宽高
//
//只获取元素的内容大小
// innerWidth() innerHeight()获取包含内间距,不包含边框
// outerWidth() outerHeight() 包含内间距包含边框
console.log($('.box1').width());
console.log($('.box1').height());
console.log($('.box1').innerHeight(),'innerheight');
console.log($('.box1').outerHeight(),'outerheight');
//获取浏览器窗口的大小
console.log($(window).width());
//获取文档的宽高
console.log($(document).width());
console.log($(document).height());
</script>
</body>
</html>