jQuery的总结

  1.初始jQuery

        2.jQuery的选择器

        3.jQuery的事件和动画

        4.使用jQuery操作Dom

        小案例等

初始jQuery
jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装(不存在浏览器兼容性问题)
jQuery的优势
    1.轻量级
    2.强大的选择器
    3.出色的DOM封装
    4.可靠的事件处理机制
    5.出色的浏览器的兼容性问题
    6.隐式迭代
    7.丰富的插件支持
jQuery语法
    $(document).ready(function(){代码})  窗体加载执行
window.onload和$(document).ready()区别
    1.执行时机不同:前者必须等待网页中所有的内容加载完毕后才能执行,后者网页中DOM文档绘制完毕后执行,ready在前,window在后
    2.编写个数不同:前者只能编写一个,后置可以编写多个
    3.后者可以简化代码$(function(){代码});
jQuery语法结构
    语法:$(selector).action();
     工厂函数: $()作用:将DOM对象转换为jQuery对象 
selector选择器
    $("#id")id选择器 .为类选择器 标签为标签选择器   
    注意:返回一个数组,length属性可以进行判断是否存在    或者 size()方法
    但是在读取时,只读取第一个对象
注意:jQuery事件和JavaScript有区别
action()方法
    addclass():作用向被选元素添加一个或多个类样式
    语法 jQuery 对象.addclass([样式名])      可以多个,使用空格隔开即可
    语法:css("属性","值")设置一个
    语法:css({"属性":"值","属性":"值"}) 设置多个
    css()和addclass()区别
    css()方法为所匹配的元素设置给定的CSS样式
    addclass()方法想所匹配的元素添加一个或多个类,该方法不会删除已经存在的类,仅是在基础在追加一个新的类样式
    $(selector).show():方法显示   $(selector).hide():方法隐藏   children():遍历后代
    removeclass():删除类样式
    hasclass():判断是否存在
    attr():添加属性
    prop():添加属性
$是jQuery程序的标志
链式操作
    next()方法作用是获取所匹配元素集合中每个元素其后紧邻的同辈元素
    语法:$(selector).css().css();
隐式迭代:不需要遍历所有元素,可以直接设置元素的样式
DOM对象
    DOM对象只能调用DOM元素本身的属性和方法,不能调用jQuery里面的属性和方法
    注意:通过getelementById()等方法获取的值就是DOM对象
jQuery对象
    通过jQuery的选择器获取出来的对象就是jQuery对象
    语法:$(selector).html()等同于innerHTML
DOM和jQuery对象转换
    jQuery对象转换为DOM对象二种方法
    语法: var 变量名称=$(selector).get(0) 或者 var 变量名=$(selector)[0];
    注意:因为jQuery选择器返回的是一个数组
    DOM对象转换为jQuery对象
    var item=document.getelementbyid("值");
    语法 var 变量=$(item);
注意:jQuery对象只能调用jQuery对象的属性和方法,JavaScript也是一样

jQuery选择器
单词
    1.first:第一个
    2.last:最后一个
    3.even:偶数
    4.odd:奇数
选择器的作用是获取元素
jQuery选择器的优势
    1.简洁的写法
    2.完善的处理机制
jQuery选择器类型
    基本选择器
    层次选择器
    属性选择器
    基本过滤选择器
    可见性过滤选择器
基本选择器
    标签选择器  返回元素集合      使用标签名称
    类选择器       返回元素集合       使用.
    id选择器      返回一个元素       使用#号
    并集选择器   返回元素集合     多个值使用逗号隔开
    全局选择器    返回元素集合    使用 *号
层次选择器
    语法:$("Div>p")
    后代选择器    Div P中间使用空格隔开
    子选择器        Div>p使用>号
    相邻元素选择器  Div+P   使用+号表示相邻   只抓取下一个满足条件的兄弟节点
    同辈元素选择器  Div~P   使用~表示同辈    选取后面所有满足条件的同辈元素
注意:jQuery中next()方法可以代替相邻元素选择器,使用nextall方法可以代替同辈元素选择器
属性选择器
    语法:$("input[value]")
    [attribute]    获取包含该元素的控件集合
    [attribute=value]  获取包含该元素并且元素值相匹配
    [attribute!=value]  选取包含该元素但值和值不匹配
    [attribute^=value]  属性以什么开头
    [attribute$=value]  属性以什么结尾
    [attribute*=value]  获取包含该字母的值    理解:相当于模糊查询
基本过滤选择器
    语法 $("li:基本过滤选择器");
    :first  选取第一个元素
    :last   选取最后一个元素
    :not(selector) 取反操作
    :even 偶数    注意从0开始
    :odd  奇数    从0开始
    :eq(index) 选取索引值等于index的元素
    :gt(index) 选取索引值大于index的元素
    :lt(index) 获取索引值小于index的元素
    :header  获取全部的h标签
    :focus   选取当前获取的焦点对象

实现商品的隔行换色

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			
			*{padding:0;margin:0;}
			.contain{width:100%;margin:0px auto;}
			
			tr{text-align:center;}
			th{line-height:45px;background:#0000ff; color: #ffffff;}
			td{border-bottom:1px #d7d7d7 solid;}
			td,td a{padding:8px 0;color:#666;font-size:14px;}
			td img{vertical-align:middle;}
			td img,td a{display:inline-block;margin-right:8px;}
		</style>
	</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="img/f1.jpg" width="50" height="50"/>
							<a href="">丹幕妮通勤波点印花毛衣</a>
						</td>
						<td>180.0</td>
						<td>3</td>
						<td><a href="javascript:void(0);" name="del">删除</a></td>
					</tr>
					<tr>
						<td>
							<img src="img/f2.jpg" width="50" height="50"/>
							<a href="">预售太平洋女装连衣裙</a>
						</td>
						<td>765.0</td>
						<td>4</td>
						<td><a href="javascript:void(0);" name="del">删除</a></td>
					</tr>
					<tr>
						<td>
							<img src="img/f3.jpg" width="50" height="50"/>
							<a href="">丹幕妮通勤红色小外套</a>
						</td>
						<td>456.0</td>
						<td>2</td>
						<td><a href="javascript:void(0);" name="del">删除</a></td>
					</tr>
					<tr>
						<td>
							<img src="img/f4.jpg" width="50" height="50"/>
							<a href="">漫巴森秋装新款套头衫</a>
						</td>
						<td>140.0</td>
						<td>1</td>
						<td><a href="javascript:void(0);" name="del">删除</a></td>
					</tr>
				</table>
			</div>
			<script src="js/JQuery.js" type="text/javascript" charset="utf-8"></script>
			<script type="text/javascript">
				$(function(){
					$("tr:not('tr:first'):even").css("background-color","red");
					$("tr:not('tr:first'):odd").css("background-color","#0f0");
					$("a[name]").click(function(){
						//var $remove=this.pa
						// var Item=$("tr");
						
						// var Set=$(this).parent();
						// alert(Set.html());
						var index=$("table tr td a").index(this);
						$("table tr:eq("+index+")").remove();
					});
				})
				
			</script>
	</body>
</html>

可见性过滤器
    :visible   选取所有可见的元素
    :hidden  选取所有隐藏的元素     可以获取hide()方法隐藏的值和display:none等控件

注意:在编写选择器时要注意特殊符号和空格

通过选择器实现样式的修改

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			body,h1,h2,h3,p,ul,li,dl,dt,dd,div,section{margin: 0;padding: 0;}
			body{
			    font-family: "微软雅黑";
			    font-size: 12px;
			    line-height: 28px;
			}
			#book{
			    margin: 5px auto 0 auto;
			    width: 650px;
			    overflow: hidden;
			}
			.imgLeft{
			    float:left;
			    width: 210px;
			}
			.imgLeft img{width: 200px;}
			.textRight{
			    float: right;
			    width: 440px;
			}
			#book h1{font-size: 16px; line-height: 50px;}
			.textRight dl{padding-left: 5em;}
			.textRight dl dd{display: none;}
			#jdPrice p{ display:inline;}
			.JingPrice{
				color: red;
				font-weight: 800px;
				font-size: 24px;
			}
			.Money{
				color: #fff;
				background-color: red;
				padding: 1px 5px;
				margin-right: 5px;
			}
			.Span{
				color: #f00;
				text-decoration: line-through;
			}
		</style>
	</head>
	<body>
		<section id="book">
		    <div class="imgLeft"><img src="img/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.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				$("#jdPrice>span:eq(0)").addClass("JingPrice");
				$("#jdPrice>p>span").addClass("Span")
				$("dl").css("color","red");
				$("dl").click(function(){
					$("dd").show();
				});
				$("dd span,#ticked>span").addClass("Money");
			});
			
		</script>
	</body>
</html>

jQuery事件和动画
基础事件
    语法:事件名=“函数名()”   或者 DOM对象.事件=函数
    鼠标事件
        Mouseover():鼠标指针移过时
        Mouseout():鼠标指针移出时
        Mouseenter():鼠标指针进入时
        Mouseleave():鼠标指针离开时
    键盘事件
        Keydown():按下键盘时
        Keyup():释放按键时
        Keypress():产生可打印的字符时
    浏览器事件
        $(selector).resize();
    绑定事件
        语法:Bind(type,[data],fn)   还有on(),live(),one()
        Type:事件类型  data:可选参数,传递数据 fn:处理函数,用来绑定
        绑定多个事件:$(selector).bind(事件1,事件2) 使用逗号隔开
    移出事件
        语法:unbind([type],[fn])
        不带参数表示移除绑定的全部事件
    复合事件
        Hover():鼠标指针移入和移出事件
        语法:hover(enter,leave)
        toggle方法:连续click事件,重复调用这几个函数
        语法:toggle(fn1,fn2)
        循环调用类样式
        语法:toggleclass(样式名称)
    控制元素显示与隐藏
        显示
        $(selector).show([speed],[callback])
        Speed:规定从隐藏到显示时间已毫秒为单位
        callback:执行完之后,要调用的函数
        隐藏
        $(selector).hide([speed],[callback])
        Speed:从显示到隐藏的时间
        callback:执行完之后,要调用的函数

       实现淡入和淡出的效果

<body>
		<img src="img/1.gif" >
		<input type="button" name="no1" id="" value="淡出" />
		<input type="button" name="no2" id="" value="淡入" />
		
		<script src="js/JQuery.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				$("input[name=no1]").click(function(){
						$("img").fadeIn("slow");
				});
				$("input[name=no2]").click(function(){
					$("img").fadeout(1000);
				});
				});
		</script>
	</body>

    改变元素透明度
        淡入
        $(selector).fadein([speed],[callback])
        Speed:从隐藏到完全可见的速度
        callback:必须设置第一个参数,执行完调用的函数
        淡出
        $(selector).fadeOut([speed],[callback])
        参数和淡出一样
    改变元素高度(下拉效果)
        语法:$(selector).slideup([speed],[callback])
            $(selector).sideDown([speed],[callback])
                参数和淡出一样
    自定义动画
        语法:$(selector).animate({params},speed,callback);
        Params:必须,定义形成动画的css属性
        Speed:可选,规定效果时间
        Callback:可选,滑动完成之后调用的函数名称

实现小小的变化效果

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div{
				width: 200px;
				height: 200px;
				border: 1px solid red;
				: 100px;
			}
		</style>
	</head>
	<input type="button" value="开始" onclick="Go()"/>
	<div id="">
		
	</div>
	<body>
		<script src="js/JQuery.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			function Go(){
				$("div").animate({"border-radius":"100px"},2000,function(){
					Qu();
				})
			}
			function Qu(){
				$("div").animate({"border-radius":"0px"},2000,function(){
					Go();
				})
			}
		</script>
	</body>
</html>

使用jQuery操作DOM
设置和获取样式值
    $(selector).css(name,value) 或者 css({"name":"value","name":"value"})
    获取值
    $(selector).css(name)
追加样式和移除样式
    追加样式
        语法:$(selector).addclass(class) 
        如果多个样式使用空格隔开  只是追加不影响其他样式
    移除样式
        语法:$(selector).removeClass(class)
    切换样式
        语法:$(selector).toggleClass(class)
        进行类样式的来回切换
    判断样式
        语法:$(selector).hasClass(class)
        规定指定类名,返回一个布尔值,如果包含返回true,否则返回false
    内容操作
        语法:html([content])
        Content:重新设置文本内容,不写参数时表示获取元素值
    标签内容操作
        语法:text([content])
        注意:特殊字符会被注释,参数和html一样
    属性值操作
        语法:val([value]);
        带参数表示修改value值,不带表示获取值
    节点与属性操作
        查找节点,使用选择器查询即可
        创建节点元素
        语法:$(selector) 或者$(element) 或者 $(html)
        selector:选择器,使用jQuery选择器进行匹配元素
        element:DOM元素,以DOM元素创建jQuery对象
        Html:HTML代码,使用HTML字符串创建jQuery对象
        使用标签括住即可
        
    插入节点
        内部插入和外部插入
        $(selector).append(B):将B添加到A中
        ……
    删除节点
        语法:$(selector).remove([expr])
        语法:$(selector).empty();
        注意:empty()清空节点,他能清空元素中的所有后代节点
    替换节点
        语法:$(selector).replaceWith(元素)
        $(selector).replaceAII(元素):颠倒操作
    复制节点
        语法:$(selector).clone(参数)
        参数布尔值
    属性操作
        语法:$(selector).attr([name])获取属性
        $(selector).attr([name],value) 设置属性   设置多个{属性:值,属性:值}
    删除属性
        语法:$(selector).removeAttr(name)
            Detach():删除整个节点,但是保留事件
            Empty();清空节点
    节点遍历
        遍历子节点:$(selector).children(参数)
        参数:过滤子元素的表达式
        遍历同辈元素:next(),prev(),siblings()
        遍历前辈元素:parent(),parents()
        其他遍历方法:$(selector).each(function(index,element))
            index表示选择器的index位置,element表示当前元素
            End():结束当前链条中最近的筛选操作,并将匹配元素集还原为之前状态
    Css-DOM操作
    滚动条:scrollleft:获取左右滚动条位置
        scrollTop:获取上下滚动条位置
    
    

结尾:新的一年开启新的征程,在新的一年里,愿你我都会在2022年收获硕果,加油,冲冲冲