20JQuert

JQuert

1.概念

一个JavaScript框架。简化JS开发

* jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨	是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优	化HTML文档操作、事件处理、动画设计和Ajax交互。
  • JavaScript框架:本质上就是一些js文件,封装了js的原生代码而已

2.快速入门

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQuery入门</title>
    <script src="js/jquery-3.3.1.min.js"></script>
</head>
<body>
<div id="div1">div1...</div>
<div id="div2">div2...</div>
<script>
    var div1 = $("#div1");
    alert(div1.html())
</script>
</body>
</html>

3.JQuery对象和JS对象区别与转换

1. JQuery对象在操作时,更加方便。
2. JQuery对象和js对象方法不通用的.
3. 两者相互转换
     * jq -- > js : jq对象[索引] 或者 jq对象.get(索引)
     * js -- > jq : $(js对象)

4.选择器

1.基本操作
1. 事件绑定
	//1.获取b1按钮
          $("#b1").click(function(){
              alert("abc");
          });
2. 入口函数
	 $(function () {

   	 });
	 window.onload  和 $(function) 区别
          * window.onload 只能定义一次,如果定义多次,后边的会将前边的覆盖掉
          * $(function)可以定义多次的。
3. 样式控制:css方法
	 // $("#div1").css("background-color","red");
     	$("#div1").css("backgroundColor","pink");
2.基本选择器
1. 标签选择器(元素选择器)
	* 语法: $("html标签名") 获得所有匹配标签名称的元素
2. id选择器 
	* 语法: $("#id的属性值") 获得与指定id属性值匹配的元素
3. 类选择器
	* 语法: $(".class的属性值") 获得与指定的class属性值匹配的元素
4. 并集选择器:
	* 语法: $("选择器1,选择器2....") 获取多个选择器选中的所有元素
3.层级选择器
1. 后代选择器
	* 语法: $("A B ") 选择A元素内部的所有B元素		
2. 子选择器
	* 语法: $("A > B") 选择A元素内部的所有B子元素
4.属性选择器
1. 属性名称选择器 
	* 语法: $("A[属性名]") 包含指定属性的选择器
2. 属性选择器
	* 语法: $("A[属性名='值']") 包含指定属性等于指定值的选择器
3. 复合属性选择器
	* 语法: $("A[属性名='值'][]...") 包含多个属性条件的选择器
5.过滤选择器
1. 首元素选择器 
	* 语法: :first 获得选择的元素中的第一个元素
2. 尾元素选择器 
	* 语法: :last 获得选择的元素中的最后一个元素
3. 非元素选择器
	* 语法: :not(selector) 不包括指定内容的元素
4. 偶数选择器
	* 语法: :even 偶数,从 0 开始计数
5. 奇数选择器
	* 语法: :odd 奇数,从 0 开始计数
6. 等于索引选择器
	* 语法: :eq(index) 指定索引元素
7. 大于索引选择器 
	* 语法: :gt(index) 大于指定索引元素
8. 小于索引选择器 
	* 语法: :lt(index) 小于指定索引元素
9. 标题选择器
	* 语法: :header 获得标题(h1~h6)元素,固定写法
6.表单过滤选择器
1. 可用元素选择器 
	* 语法: :enabled 获得可用元素
2. 不可用元素选择器 
	* 语法: :disabled 获得不可用元素
3. 选中选择器 
	* 语法: :checked 获得单选/复选框选中的元素
4. 选中选择器 
	* 语法: :selected 获得下拉框选中的元素

5.DOM操作

1.内容操作
1. html(): 获取/设置元素的标签体内容   
<a><font>内容</font></a>  --> <font>内容</font>
$("#mydiv").html("<a>内容</a>");//内容
2. text(): 获取/设置元素的标签体纯文本内容   
<a><font>内容</font></a> --> 内容
$("#mydiv").text("<a href='#'>内容</a>");//<a href='#'>内容</a>
3. val(): 获取/设置元素的value属性值
2.属性操作
1. 通用属性操作
	1. attr(): 获取/设置元素的属性
	2. removeAttr():删除属性
	3. prop():获取/设置元素的属性
	4. removeProp():删除属性

	* attr和prop区别?
		1. 如果操作的是元素的固有属性,则建议使用prop
		2. 如果操作的是元素自定义的属性,则建议使用attr
2.class属性操作
	1. addClass():添加class属性值
	2. removeClass():删除class属性值
	3. toggleClass():切换class属性
		* toggleClass("one"): 
			* 判断如果元素对象上存在class="one",则将属性值one删除掉。  如果元素对象上不存在class="one",则添加
	4. css():
3.CRUD操作
<body>
	<input type="button" value="将反恐放置到city的后面"  id="b1"/>
	<input type="button" value="将反恐放置到city的最前面"  id="b2"/>
	<input type="button" value="将反恐插入到天津后面"  id="b3"/>
	<input type="button" value="将反恐插入到天津前面"  id="b4"/>
	 <ul id="city">
	 	 <li id="bj" name="beijing">北京</li>
		 <li id="tj" name="tianjin">天津</li>
		 <li id="cq" name="chongqing">重庆</li>
	 </ul>
	 
	  <ul id="love">
	 	 <li id="fk" name="fankong">反恐</li>
		 <li id="xj" name="xingji">星际</li>
	 </ul>
	
	<div id="foo1">Hello1</div> 
</body>
$(function () {
 // <input type="button" value="将反恐放置到city的后面"  id="b1"/>
	$("#b1").click(function () {
		//append
		//$("#city").append($("#fk"))
		//appendTo
		$("#fk").appendTo($("#city"))
    })
 // <input type="button" value="将反恐放置到city的最前面"  id="b2"/>
	 $("#b2").click(function () {
		//prepend
		// $("#city").prepend($("#fk"))
		//prependTo
		$("#fk").prependTo($("#city"))
     })
 // <input type="button" value="将反恐插入到天津后面"  id="b3"/>
	$("#b3").click(function () {
		//after
		//$("#tj").after($("#fk"))
		//insertAfter
		$("#fk").insertAfter($("#tj"))
    })
 // <input type="button" value="将反恐插入到天津前面"  id="b4"/>
	$("#b4").click(function () {
		//before
		//$("#tj").before($("#fk"))
		//insertBefore
        $("#fk").insertBefore($("#tj"))
    })
// <input type="button" value="删除<li id='bj' name='beijing'>北京</li>"  id="b1"/>
	$("#b1").click(function () {
		$("#bj").remove();
    })
// <input type="button" value="删除city所有的li节点   清空元素中的所有后代节点(不包含属性节点)"  id="b2"/>
    $("#b2").click(function () {
        $("#city").empty();
    })
 })

6.JQuery案例

1.隔行变色
//需求:将数据行的奇数行背景色设置为 pink,偶数行背景色设置为 yellow
$(function () {
	$("tr:gt(1):even").css("backgroundColor","pink")
	$("tr:gt(1):odd").css("backgroundColor","yellow")
})
2.全选和全不选
//全选和全部选择
function selectAll(obj) {
    //alert(obj.checked)
    $(".itemSelect").prop("checked",obj.checked)
}
3.qq表情选择
 //需求:点击qq表情,将其追加到发言框中
 $(function () {
     $("ul img").click(function () {
         $(".word").append($(this).clone())
     })
 })
4.下拉列表选中条目左右移动
 //需求:实现下拉列表选择条目左右选择功能
 $(function () {
     //左移动
     $("#toRight").click(function () {
     $("#rightName").append($("#leftName > option:checked"))
     })
     //右移动
     $("#toLeft").click(function () {
     $("#rightName > option:checked").appendTo($("#leftName"))
     })
 })

7.JQuert高级

1.动画
1. 三种方式显示和隐藏元素
	1. 默认显示和隐藏方式
		1. show([speed,[easing],[fn]])
			1. 参数:
				1. speed:动画的速度。三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000)
				2. easing:用来指定切换效果,默认是"swing",可用参数"linear"
					* swing:动画执行时效果是 先慢,中间快,最后又慢
					* linear:动画执行时速度是匀速的
				3. fn:在动画完成时执行的函数,每个元素执行一次。
	2. hide([speed,[easing],[fn]])
	3. toggle([speed],[easing],[fn])
	
2. 滑动显示和隐藏方式
	1. slideDown([speed],[easing],[fn])
	2. slideUp([speed,[easing],[fn]])
	3. slideToggle([speed],[easing],[fn])

3. 淡入淡出显示和隐藏方式
	1. fadeIn([speed],[easing],[fn])
	2. fadeOut([speed],[easing],[fn])
	3. fadeToggle([speed,[easing],[fn]])
2.遍历
1. js的遍历方式
	* for(初始化值;循环结束条件;步长)
2. jq的遍历方式
	1. jq对象.each(callback)
		1. 语法:
			jquery对象.each(function(index,element){});
				* index:就是元素在集合中的索引
				* element:就是集合中的每一个元素对象
				* this:集合中的每一个元素对象
		2. 回调函数返回值:
			* true:如果当前function返回为false,则结束循环(break)* false:如果当前function返回为true,则结束本次循环,继续下次循环(continue)
	2. $.each(object, [callback])
	3. for..of: jquery 3.0 版本之后提供的方式
		for(元素对象 of 容器对象)
3.事件绑定
1. jquery标准的绑定方式
	* jq对象.事件方法(回调函数)* 注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。
		* 表单对象.submit();//让表单提交
2. on绑定事件/off解除绑定
	* jq对象.on("事件名称",回调函数)
	* jq对象.off("事件名称")
		* 如果off方法不传递任何参数,则将组件上的所有事件全部解绑
3. 事件切换:toggle
	* jq对象.toggle(fn1,fn2...)
		* 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2.....
		
	* 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。
		<script src="../js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8"></script>

8.案例

1.广告隐藏和显示
 <script>
     $(function () {
         setTimeout(adShow,3000);
         setTimeout(adHide,8000);
     });
     //隐藏
     function adShow() {
         $("#ad").slideDown("slow");
     }
     //显示
     function adHide() {
         $("#ad").slideUp("slow");
     }
 </script>
2.抽奖
<script language='javascript' type='text/javascript'>
    //准备一个一维数组,装用户的像片路径
    var imgs = [
        "../img/man00.jpg",
        "../img/man01.jpg",
        "../img/man02.jpg",
        "../img/man03.jpg",
        "../img/man04.jpg",
        "../img/man05.jpg",
        "../img/man06.jpg"
    ];
	//按钮的效果
    function f(startID,stopID) {
        $("#startID").prop("disabled",startID);
        $("#stopID").prop("disabled",stopID);
    }
    var interval;
    var index;
    $(function () {
        f(false,true);
        // $("#startID").prop("disabled",false);
        // $("#stopID").prop("disabled",true);
        //开始按钮
        $("#startID").click(function () {
            //循环定时器
             interval = setInterval(function () {
                 f(true,false);
                 index = Math.floor(Math.random()*7);
                $("#img1ID").prop("src",imgs[index]);
            },200);
        })
        //结束按钮
        $("#stopID").click(function () {
            f(false,true);
            clearInterval(interval)
            $("#img2ID").prop("src",imgs[index]).hide();
            $("#img2ID").show(1000);
        });
    })
</script>

9.插件:增强JQuery的功能

1. 实现方式:
	1. $.fn.extend(object) 
		* 增强通过Jquery获取的对象的功能  $("#id")
	2. $.extend(object)
		* 增强JQeury对象自身的功能  $/jQuery
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值