jQuery基础

1、目标

了解jQuery介绍

掌握调用jQuery的方式

掌握jQuery选择器的使用方式

了解jQuery和原生javascript在使用上的区别

2、jQuery

1、jQuery简介

jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装

它的设计思想是write less,do more

2、jQuery的作用

访问和操作DOM元素

控制页面样式

对页面事件进行处理

扩展新的jQuery插件

与Ajax技术完美结合

3、jQuery的优势

体积小,压缩后只有100KB左右

强大的选择器

出色的DOM封装

可靠的事件处理机制

出色的浏览器兼容性

使用隐式迭代简化编程

丰富的插件支持

4、jQuery库文件

jQuery库分开发版和发布版

名称

大小

说 明

jquery-3.版本号.js(开发版)

286KB

完整无压缩版本,主要用于测试、学习和开发

jquery-3.版本号.min.js(发布版)

94.8KB

经过工具压缩或经过服务器开启Gzip压缩,主要应用于发布的产品和项目

//引入方式
<script src="js/jquery-3.3.1.min.js" type="text/javascript"></script>

5、jQuery基本语法

使用jQuery弹出提示框

<script>
    //为页面加载事件绑定方法
     $(document).ready(function() {
        alert("我欲奔赴沙场征战jQuery,势必攻克之!");
    });
</script>

$(document).ready()

$(document).ready()与window.onload类似,但也有区别


 

window.onload

$(document).ready()

执行时机


 

必须等待网页中所有的内容加载完毕后(包括图片、flash、视频等)才能执行


 

网页中所有DOM文档结构绘制完毕后即刻执行,可能与DOM元素关联的内容(图片、flash、视频等)并没有加载完

编写个数

同一页面不能同时编写多个

同一页面能同时编写多个

简化写法

$(function(){

//执行代码

}) ;

6、jQuery选择器

jQuery语法

jQuery语法是为HTML元素的选取编制的,可以对元素执行某些操作

基础语法:

$(selector).action()

jQuery基本选择器

基本选择器包括标签选择器、类选择器、ID选择器、并集选择器、全局选择器

名称

语法构成

描述

示例

标签选择器

element

根据给定的标签名匹配元素

$("h2" )选取所有h2元素

类选择器

.class

根据给定的class匹配元素

$(" .title")选取所有classtitle的元素

ID选择器

#id

根据给定的id匹配元素

$(" #title")选取idtitle的元素

并集选择器

selector1,selector2,...,selectorN

将每一个选择器匹配的元素合并后一起返回

$("div,p,.title" )选取所有divp和拥有classtitle的元素

全局选择器

*

匹配所有元素

$("*" )选取所有元素

标签选择器

标签选择器根据给定的标签名匹配元素

$(document).ready(function(){
  //设置标签dd中的内容显示出来
    $("dt").click(function(){
        $("dd").css("display","block"); 
    });
      //设置h1标签中的字体颜色
    $("h1").css("color","blue");
})
类选择器

类选择器根据给定的 class匹配元素

//设置class为price元素的背景颜色和内边距
$(".price").css({"background":"#efefef","padding":"5px"});
ID选择器

ID选择器根据给定的id匹配元素

//设置id为author的元素的字体颜色
$("#author").css("color","#083499");

并集选择器

并集选择器用来合并元素集合

$(".intro,dt,dd").css("color","#ff0000");
全局选择器

全局选择器可以获取所有元素

//设置所有元素的字体加粗显示
$("*").css("font-weight","bold");

实例代码

$(document).ready(function(){
    $("dt").click(function(){
        $("dd").css("display","block");
    });
    $("h1").css("color","blue")
    //设置class为price元素的背景颜色和内边距,类选择器
    $(".price").css({"background":"#efefef","padding":"5px"})
    //设置id为author的元素的字体颜色,id选择器
    $("#author").css({"color":"#083499"})
    //并集选择器
    $(".intro,dt,dd").css("color","#ff0000")
    //全局选择
    $("*").css({"font-weight":"bold"})
})

html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>图书简介</title>
    <link rel="stylesheet" href="css/bookStyle.css">
</head>
<body>
<section id="book">
    <div class="imgLeft"><img src="images/store.jpg" alt="岛上书店"></div>
    <div class="textRight">
        <h1>岛上书店【荐书联盟推荐】[The Storied Life of A.J.Fikry]</h1>
        <p class="intro">自营图书几十万畅销品种阶梯满减,抽奖赢魅蓝note3、JDRead阅读器!</p>
        <p id="author">[美] 加·泽文(Gabrielle Zevin) 著;孙仲旭,李玉瑶 译</p>
        <div class="price">
            <div id="jdPrice">京东价: <span>¥24.10</span> [6.9折] <p>[定价:<span>¥35.00</span>]</p> (降价通知)</div>
            <p id="mobilePrice">促销信息:<span>手机专享价</span> <span>¥9.90</span></p>
            <dl>
                <dt>以下促销可在购物车任选其一</dt>
                <dd><span>加价购</span> 满99.00元另加6.18元即可在购物车换购热销商品</dd>
                <dd><span>满减</span> 满100.00减20.00,满200.00减60.00,满300.00减100.00</dd>
            </dl>
            <p id="ticket">领 券:<span>105-6</span>  <span>200-16</span></p>
        </div>
    </div>
</section>
<script src="js/jquery-3.7.1.js"></script>
<script src="js/book.js"></script>
</body>
</html>

jQuery层次选择器

层次选择器通过DOM元素之间的层次关系来获取元素

名称

语法构成

描述

示例

后代选择器

ancestor descendant

选取ancestor元素里的所有descendant(后代)元素

$("#menu span" )选取#menu下的<span>元素

子选择器

parent>child

选取parent元素下的child(子)元素

$(" #menu>span" )选取#menu的子元素<span>

相邻元素选择器

prev+next

选取紧邻prev元素之后的next元素

$(" h2+dl " )选取紧邻<h2>元素之后的同辈元素<dl>

同辈元素选择器

prev~sibings

选取prev元素之后的所有siblings元素

$(" h2~dl " )选取<h2>元素之后所有的同辈元素<dl>

后代选择器

后代选择器用来获取元素的后代元素

//设置class为textRight元素中的所有<p>
$(".textRight p").css("color","red");
子选择器

子选择器用来获取元素的子元素

$(".textRight>p").css("color","red");
相邻选择器

相邻选择器用来选取紧邻目标元素的下一个元素

 $("h1+p").css("text-decoration","underline")
同辈选择器

同辈选择器用来选取目标元素之后的所有同辈元素

$("h1-p").css("text-decoration","underline")

jQuery属性选择器

属性选择器通过HTML元素的属性来选择元素

语法构成

描述

示例

[attribute^=value]

选取给定属性是以某些特定值开始的元素

$(" [href^='en']" )选取href属性值以en开头的元素

[attribute$=value]

选取给定属性是以某些特定值结尾的元素

$(" [href$='.jpg']" )选取href属性值以.jpg结尾的元素

[attribute*=value]

选取给定属性是以包含某些值的元素

$(" [href* ='txt']" )选取href属性值中含有txt的元素

根据属性名获取元素

属性选择器可以根据是否包含某属性来选取元素

a标签带有class属性

$("#news a[class]").css("background","#c9cbcb");
根据属性值获取元素

属性选择器可以根据属性的值来选取元素

class属性值为hot

$("#news a[class='hot']").css("background","#c9cbcb");

属性选择器可以指定选取不等于属性是某个特定值的元素

class值不等于hot

$("#news a[class!='hot']").css("background","#c9cbcb");
根据属性值包含特定的值获取元素

属性选择器可以指定属性值以指定值开头的元素

a标签href属性值以www开头

$("#news a[href^='www']").css("background","#c9cbcb");

属性选择器可以指定属性值以指定值结尾的元素

a标签href属性值以html结尾

$("#news a[href$='html']").css("background","#c9cbcb");

属性选择器可以指定属性值包含指定值的元素

a标签href属性值包含“k2”的元素

$("#news a[href*='k2']").css("background","#c9cbcb");

过滤选择器

主要分类

基本过滤选择器

可见性过滤选择器

表单对象过滤选择器

内容过滤选择器、子元素过滤选择器

语法

描述

示例

:first

选取第一个元素

$(" li:first" )选取所有<li>元素中的第一个<li>元素

:last

选取最后一个元素

$(" li:last" )选取所有<li>元素中的最后一个<li>元素

:not(selector)

选取去除所有与给定选择器匹配的元素

$(" li:not(.three)" )选取class不是three的元素

:even

选取索引是偶数的所有元素(index0开始)

$(" li:even" )选取索引是偶数的所有<li>元素

:odd

选取索引是奇数的所有元素(index0开始)

$(" li:odd" )选取索引是奇数的所有<li>元素

语法

描述

示例

:eq(index)

选取索引等于index的元素(index0开始)

$("li:eq(1)" )选取索引等于1<li>元素

:gt(index)

选取索引大于index的元素(index0开始)

$(" li:gt(1)" )选取索引大于1<li>元素(注:大于1,不包括1

:lt(index)

选取索引小于index的元素(index0开始)

$(“li:lt(1)” )选取索引小于1<li>元素(注:小于1,不包括1

:header

选取所有标题元素,如h1~h6

$(":header" )选取网页中所有标题元素

:focus

选取当前获取焦点的元素

$(":focus" )选取当前获取焦点的元素

:animated

选择所有动画

$(":animated" )选取当前所有动画元素

可见性过滤选择器

通过元素显示状态来选取元素

语法

描述

示例

:visible

选取所有可见的元素

$(":visible" )选取所有可见的元素

:hidden

选取所有隐藏的元素

$(":hidden" ) 选取所有隐藏的元素

$("p:hidden").show();
$("p:visible").hide();

jQuery选择器注意事项

特殊符号转义

<div id="id#a">aa</div>

<div id="id[2]">cc</div>

获取两个元素的选择器

$("#id\\#a");

$("#id\\[2\\]");

选择器中的空格

选择器的书写规范很严格,多一个空格或少一个空格,都会影响选择器的效果

选取class为test的元素内部的隐藏元素
var $t_a = $(".test :hidden"); //带空格的jQuery选择器
选取隐藏的class为test的元素
var $t_b = $(".test:hidden");  //不带空格的jQuery选择器

练习

练习一、制作图书简介页面

需求说明

使用基本选择器和层级选择器获取并设置页面元素

“自营图书几十万……”一行字体颜色为红色

京东价“¥24.10”字体为24px、红色加粗显示

“[定价:¥35.00]”字体颜色为#cccccc,价格中有中划线

<dl>标签中的字体颜色均为红色

单击“以下促销….”显示隐藏的内容,此部分字体颜色均为红色

“加购价”、“满减”、“105-5”、“200-16”字体颜色为白色,背景颜色为红色,上下内边距为1px,左右内边距为5px,外右边距为5px

html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>图书简介</title>
    <link rel="stylesheet" href="css/bookStyle.css">
</head>
<body>
<section id="book">
    <div class="imgLeft"><img src="images/store.jpg" alt="岛上书店"></div>
    <div class="textRight">
        <h1>岛上书店【荐书联盟推荐】[The Storied Life of A.J.Fikry]</h1>
        <p class="intro">自营图书几十万畅销品种阶梯满减,抽奖赢魅蓝note3、JDRead阅读器!</p>
        <p id="author">[美] 加·泽文(Gabrielle Zevin) 著;孙仲旭,李玉瑶 译</p>
        <div class="price">
            <div id="jdPrice">京东价: <span>¥24.10</span> [6.9折] <p>[定价:<span>¥35.00</span>]</p> (降价通知)</div>
            <p id="mobilePrice">促销信息:<span>手机专享价</span> <span>¥9.90</span></p>
            <dl>
                <dt>以下促销可在购物车任选其一</dt>
                <dd><span>加价购</span> 满99.00元另加6.18元即可在购物车换购热销商品</dd>
                <dd><span>满减</span> 满100.00减20.00,满200.00减60.00,满300.00减100.00</dd>
            </dl>
            <p id="ticket">领 券:<span>105-6</span>  <span>200-16</span></p>
        </div>
    </div>
</section>
<script src="./js/jquery-3.7.1.js"></script>
<script src="js/book.js"></script>
</body>
</html>

js

$(document).ready(function(){
    $("dt").click(function(){
        $("dd").css("display","block");
    });
    $(".intro").css("color","red")
    $("#jdPrice>span").css({"font-size":"24px","color":"red","font-weight":"bold"})
    $("#jdPrice>p").css({"color":"#cccccc","text-decoration":"line-through"})
    $("dl").css("color","red")
    $("dd span,#ticket span").css({"color":"white","background":"red","padding":"1px 5px","margin":"0px 5px"})
})

练习二、使用jQuery美化英雄联盟简介页

需求说明

单击<p>元素后,设置class为txt_box的元素内class 为current的元素的背景颜色为#6FF,<p>的子元素<span>的背景颜色为#F9F,紧邻<h1>后的<p>元素的背景颜色为#FF6,“即时对战”文本颜色为#FFF,背景颜色为#F00

js

$(document).ready(function(){
    $('p').click(function(){
        $('.txt_box>.current').css("background","#6FF")
    })
    $('p span').css("background","#f9f")
    $('h1+p').css("background","#FF6")
    $('#content span>span').css({"color":"#FFF","background":"#F00"})
})

html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
<title>使用jQuery美化英雄联盟简介页 </title>
</head>
<body>
 <h1>英雄联盟</h1> 
<p>    《英雄联盟》,简称LOL。</p>
<p id="content">
    由<strong>Riot Games </strong>开发,为3D竞技场战游戏,其
    <span>主创团队由实力强劲的
        <strong>魔兽争霸</strong>
        系列游戏多人<span>即时对战</span>自定义地图开发团队
    </span>...
    <a href="#">更多详情</a>
</p>
<h2>目录</h2>
<ul class="txt_box">
    <li class="current">开发团队</li>
    <li>游戏周边</li>
    <li>游戏介绍</li>
    <li>配置需求</li>
    <li>游戏背景</li>
</ul>

 <script type="text/javascript" src="js/jquery-3.7.1.js"></script>

 <script src="js/index.js" type="text/javascript">

 </script>
</body>
</html>

练习三、制作非缘勿扰页面特效

训练要点

使用属性选择器选取元素

使用css( )方法或addClass( )方法为元素添加样式

需求说明

单击标题“非缘勿扰”,<dd>元素中有id属性的<span>的文本(主演、导演、标签、剧情)颜色值为#FF0099,字体加粗显示

单击文本“导演”,文字“赖水清”为加粗

单击文本“标签”,它之后的“苏有朋”和“2013”的背景颜色为#E0F8EA,字体颜色为#10 A14B,并且文字与背景颜色上下边缘间距为2px,左右边缘边距为8px

单击图片“收藏”,弹出对话框,显示信息为“您已收藏成功!”

html

<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="UTF-8">
    <title>制作非缘勿扰页面特效 </title>
	<link rel="stylesheet" href="css/style.css">
</head>
<body>
 	 <div class='main' >
     	<div class='left'>
        	<img src="images/pic.gif" />
            <br/><br/>
            <img src="images/col.gif" alt="收藏本片"/>
        </div>
        <div class='right'>
        	<dl>
            	<dt>非缘勿扰</dt>
            	<dd><span id="star">主演:</span>苏有朋/秦岚/傅艺伟等</dd>
				<dd><span id='director'>导演:</span><span title="导演">赖水清</span></dd>
				<dd><span id='label'>标签:</span><span>苏有朋</span>  国产电视剧   <span>2013</span>  连续剧 </dd>
				<dd><span id="drama">剧情:</span>当代都市,大年女刘林、杨阳都在寻找自己的如意郎君,刘林偶遇陆氏房地产总裁路西诺,两人成了欢喜冤家,遭到暗恋西诺的丁娟的嫉恨。。。<a href="#">点击了解更多 </a></dd>
            </dl>
            <img src="images/btn.gif"/>
        </div>
     </div>
	 <script type="text/javascript" src="js/jquery-1.12.4.js" ></script>
	 <script src="./js/index.js"></script>
</body>
</html>

js

$(document).ready(function(){
    $('.right dl dt').click(function(){
        $('.right dl dd span[id]').css({"color":"#FF0099" , "font-weight":"bold"})
    })
    $("span[id='director']").click(function(){
        $("span[title = '导演']").css("font-weight","bold")
    })
    $("span[id='label']").click(function(){
        $("#label~span").css({"background":"#E0F8EA","color":"#10A14B","padding":"2px 8px"})
    })
    $("img[src='images/col.gif']").click(function(){
       alert('您已收藏成功')
    })
})

练习四、制作隔行变色的商品列表

需求说明使用基本过滤选择器,实现隔行变色的表格(不包括表头),偶数行背景色为#eff7d1,奇数行背景色为#f7e195

js

$(document).ready(function(){
    $('tr:even').css('background','#eff7d1')
    $('tr:odd').css('background','#f7e195')
})

css

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>隔行变色的商品列表</title>
	 <link rel="stylesheet" href="css/product.css">
 </head>
 <body>
	<div class="contain">
		<table border="0" width="100%" cellspacing="0">
			<tr class="t-head">
				<th width="50%">商品</th>
				<th width="10%">单价</th>
				<th width="10%">数量</th>
				<th>操作</th>
			</tr>
			<tr>
				<td>
					<img src="images/f1.jpg" width="50" height="50"/>
					<a href="">丹幕妮通勤波点印花毛衣</a>
				</td>
				<td>180.0</td>
				<td>3</td>
				<td><a href="javascript:void(0);" id="del">删除</a></td>
			</tr>
			<tr>
				<td>
					<img src="images/f2.jpg" width="50" height="50"/>
					<a href="">预售太平洋女装连衣裙</a>
				</td>
				<td>765.0</td>
				<td>4</td>
				<td><a href="javascript:void(0);" id="del">删除</a></td>
			</tr>
			<tr>
				<td>
					<img src="images/f3.jpg" width="50" height="50"/>
					<a href="">丹幕妮通勤红色小外套</a>
				</td>
				<td>456.0</td>
				<td>2</td>
				<td><a href="javascript:void(0);" id="del">删除</a></td>
			</tr>
			<tr>
				<td>
					<img src="images/f4.jpg" width="50" height="50"/>
					<a href="">漫巴森秋装新款套头衫</a>
				</td>
				<td>140.0</td>
				<td>1</td>
				<td><a href="javascript:void(0);" id="del">删除</a></td>
			</tr>
		</table>
	</div>
 </body>
 <script src="js/jquery-1.12.4.js"></script>
 <script src="./js/product.js"></script>
 <script>
	
 </script>
</html>

练习五、制作全网热播视频页面

需求说明使用选择器:not( ) 设置图片与右侧内容间距10px使用选择器:last设置右侧列表背景颜色为#f0f0f0使用层次选择器、:first、:not( )设置前三个视频名称前的数字1、2、3背景颜色为#f0a30f,后面的数字背景颜色为#a4a3a33、5、6、7后的箭头向上,4、8、9、10后的箭头向下鼠标移至右侧列表上时,显示对应的隐藏内容“加入看单”,鼠标离开后隐藏内容

html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>全网热播视频</title>
    <link rel="stylesheet" href="css/play.css">
</head>
<body>
<section id="play">
    <h1>全网热播视频</h1>
    <ul>
        <li><img src="images/flv01.jpg"><p>昊花梦</p><span>1</span></li>
        <li><img src="images/flv02.jpg"><p>好先生</p><span>2</span></li>
        <li>
            <ol>
                <li><span>3</span>三八线<p>加入看单</p></li>
                <li><span>4</span>吉详天宝<p>加入看单</p></li>
                <li><span>5</span>亲爱的翻译官<p>加入看单</p></li>
                <li><span>6</span>仙剑云之凡<p>加入看单</p></li>
                <li><span>7</span>权力的游戏第五季<p>加入看单</p></li>
                <li><span>8</span>琅琊榜<p>加入看单</p></li>
                <li><span>9</span>那年青春我们正好<p>加入看单</p></li>
                <li><span>10</span>乡村受情8(上)<p>加入看单</p></li>
            </ol>
        </li>
    </ul>
</section>
<script src="js/jquery-1.12.4.js"></script>
<script src="js/play.js"></script>
</body>
</html>

js

$(document).ready(function(){
    $("ul>li:not(:last)").css({"margin-right":"10px"})
    $("ul>li:last").css({"background":"#f0f0f0"})
    $("ul>li:not(:last) span").css({"background":"#f0a30f"})
    $("ol li:first span").css({"background":"#f0a30f"})
    $("ol li:not(:first) span").css({"background":"#a4a3a3"})
    $("ol li:eq(0),ol li:eq(2),ol li:eq(3),ol li:eq(4)").css({
        "background-image": "url(images/orange.jpg)",
        "background-repeat": "no-repeat",
        "background-position": "right -2px"
    })
    $("ol li:eq(1),ol li:eq(5),ol li:eq(6),ol li:eq(7)").css({
        "background-image": "url(images/green.jpg)",
        "background-repeat": "no-repeat",
        "background-position": "right -2px"
    })
    $("ol li").hover(function(){
        $('ol li p').show()
    })
    $("ol li").mouseout(function () {
        $("ol li p").hide();
    });
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值