jQuery的学习

jQuery

需要下载一个Jquery库
https://jquery.com/
$ = jQuery

页面加载完则执行

js: οnlοad=function(){}
jQuery: $(function(){})

基本选择器来获得元素
1、id选择器 : $("#id值")
2、class选择器 : $(".class值")
3、标签选择器 : $("标签名")
$(this)代表的是操作的那一个元素
jquery中的事件注册
jquery对象.去掉on的事件(function(){})
<p id="p1">我中国</p>
    <script>
        $(function() {
            // 为p标签注册点击事件
            $("#p1").click(function() {
                alert();
            })
        })
    </script>
jquery控制属性和样式
属性:标签中自带的那些属性:比如 font标签中的size/color
样式:css中的样式,比如font-size..

1 操作属性的语法

设置单个 :jquery对象.attr("属性","值")  
设置多个: jquery对象.attr({"属性1":"值1","属性2":"值2"......})
获取: jquery对象.attr("属性")

2 操作样式的语法

设置单个 :jquery对象.css("属性","值")  
设置多个: jquery对象.css({"属性1":"值1","属性2":"值2"......})
获取: jquery对象.css("属性")
jquery控制特殊属性
表单元素的 checked 、disabled、selected等
把jquery对象,attr() 改为  jquery对象.prop()
console.log($("#c").prop("checked"));

jquery的选择器和过滤器

目的:找元素

1 基本选择器: id 、class、标签
2 并集、交集

	2.1并集:通过逗号分隔 ,类似于或者    console.log($(".x,div,#s2"));
	2.2交集:通过无符号分隔 ,类似于并且   console.log($("div.x#d1"));
		顺序:标签、类、id

3 层次选择器

	3.1 找子孙后代   $("选择器1 选择器2")
	3.2 找第一级的所有儿子    $("选择器1 > 选择器2")
	3.3 找后面第一个兄弟  $("选择器1 + 选择器2")
	3.4 找后面的所有兄弟  $("选择器1 ~ 选择器2")

4 基本过滤器

	4.1 获得第一个元素 $("选择器:first") 
	4.2 获得最后一个元素 $("选择器:last") 
	4.3 获得偶数元素 $("选择器:even")   下标从0开始
	4.4 获得奇数元素 $("选择器:odd")    下标从0开始
	4.5 获得指定元素 $("选择器:eq(n)") 下标从0开始

5 内容过滤器

	根据内容筛选(是否包含)   $("选择器:contains(内容)")

6 属性过滤器

 	根据属性进行过滤  
 	6.1$("选择器[属性1=值1][.......]")   属性等于
 	6.2$("选择器[属性1!=值1][.......]")  属性不等于
 	6.3$("选择器[属性1^=值1][.......]")  属性以。。开头
 	6.4$("选择器[属性1$=值1][.......]")  属性以..结尾
 	6.5$("选择器[属性1*=值1][.......]")  属性包含 

7 子元素过滤器

	 7.1$("选择器:first-child")  获取元素的爸爸的第一个儿子
	 7.2$("选择器:last-child")   获取元素的爸爸的最后个儿子
	 7.3$("选择器:nth-child(n)") 获取元素的爸爸的指定儿子  下标从1开始
	  $("li:nth-child(1)").css("background-color", "orange")

8 表单元素状态过滤器(checked、selected、disabled…)

	$("选择器:checked") 获取被勾选的元素
	$("选择器:selected") 获取选择的元素
jquery操作value和innerHTML
jquery操作
//获得
var 命名 = jquery对象.val();
//赋值
jquery对象.val("值");
//获得
var 命名 = jquery对象.html();
//赋值
jquery对象.html("值");
//获得
var 命名 = jquery对象.text();
//赋值
jquery对象.text("值")

jquery对象.eq(i)—>返回的是jquery元素

jquery节点
以下所有节点都是jquery对象
1 创建节点
	var 节点=$("<标签 属性=''></标签>");
	var 节点=$("<标签 属性=''/>");
2 追加节点 (如果追加的是已存在的节点则为移动)
	父追加子    父节点.append(子节点/新节点)
	同级追加    子节点.after(新节点)   
			  	子节点.before(新节点)
$(function() {
            $("#btn").click(function() {
                //创建节点
                //方式一
                var li = $("<li>" + $("#txt").val() + "</li>");
                //方式二
                var lia = $("<li></li>").html($("#txt").val());
                //追加节点
                //方式一
                $("#ul").append($("<li>" + $("#txt").val() + "</li>"));
                //方式二
                $("#ul").append(li);
                $("#ul").append(lia);
            })
        })
  3 删除 -- 把当前的节点给删除
  	 节点对象.remove();
 
  4 清空 --- 把当前节点里面的内容清空
  	节点对象.empty()
  	
  5 克隆 
  	节点对象.clone();---返回一个和该节点相容的节点对象
  	
  6 让表单元素默认选中
   节点.val(["value值",....])
 <input type="radio" name="sex" id="" value="" >
	  <input type="radio" name="sex" id="" value="">
	  <input type="checkbox" name="" id="" value="吃饭">
	  <input type="checkbox" name="" id="" value="睡觉">
	  <input type="checkbox" name="" id="" value="打豆豆">
	   <select name="" id="sel">
	        <option value="a">aa</option>
	        <option value="b">bb</option>
	    </select>
	    $("input[type=radio]").val(["女"])
	    $(input[type=checkbox]").val(["吃饭", "打豆豆"])
	    $("#sel").val(["b"]);
   7 找爸爸
   	7.1 节点.closest("选择器")  ---->找到该节点的最近的一个满足选择器的父节点
   	7.2 节点.parents("选择器")-->找到该节点的满足选择器的所有父节点
   
   8 找儿子
   	8.1 节点.children(选择器)获取第一级所有儿子
   	8.2 节点.find(选择器) 获取满足选择器的子节点(无视层级:儿子、孙子都可以)
   
   
   9 找兄弟
   
   	9.1 找上一个兄弟  节点.prev(选择器) 只能找相邻的元素
   	9.2 找下一个兄弟  节点.next(选择器) 只能找相邻的元素
   	9.3 找相邻所有兄弟  节点.siblings(选择器)
jquery on 的用法 --操作动态生成节点
父元素.on('去掉on的事件类型','操作的那个元素对象',function(){})

第二个参数:可以直接用“”,也可以用$()
$("#btn2")  或  "#btn2"
<button id="btn">生成一个动态按钮</button>

    <div id="d">

    </div>
    <script>
        $(function() {
            $("#btn").click(function() {
                //创建按钮
                var btn = $("<button id='btn2'>新按钮</button>");
                //追加
                $("#d").append(btn);
            })
            $("#d").on("click", $("#btn2"), function() {
                alert(123);
            })
        })
    </script>
jquery的合成事件
语法 :如果是鼠标进入和离开,则我们可以使用合成事件
对象.hover(function(){鼠标进入的代码},function(){鼠标离开的代码})
trigger --触发
当我们去操作一个事件时,可以通过trigger去触发另一个事件
对象.trigger('事件')
<button id="btn">生成一个动态按钮</button>
    <script>
        $(function() {
            $("#btn").click(function() {
                alert("点击");
                //触发div的鼠标进入事件
               $("div").trigger("mouseover");
            })
            $("div").mouseover(function() {
                $(this).css("background-color", "red");
            })
  	</script>
jquery动画

隐藏显示动画

	1 正常:
		对象.show(毫秒)    显示
		对象.hide(毫秒)    隐藏
	2 淡入淡出
		对象.fadeIn(毫秒)    显示
		对象.fadeOut(毫秒)    隐藏
	3 延申和收缩
		对象.slideDown(毫秒)   显示
		对象.slideUp(毫秒)    隐藏
自定义动画
对象.animate(样式,毫秒[,function(){}])
样式: {"属性1":"值1",.....}
这里的样式是描述的最终的状态
1 简单运动
 $("div").animate({
                    "left": "1000px"
                }, 2000)
2 累加运动
$("div").animate({
                    "left": "-=200px"
                }, 2000)
***注意:有的属性不支持动画
停止动画
	对象.stop(true)
	能够停止正在执行或将要执行的所有动画
mouseenter和mouseleave
mouseenter:鼠标进入事件,可以阻止冒泡 ,但是mouseover却不能
mouseleave:鼠标离开事件 ,可以阻止冒泡,但是mouseout却不能
  <div id="d1"><div id="d2"></div></div>
  <script>
 		    $("#d1").mouseenter(function() {
                console.log("进入");
            })
            $("#d1").mouseleave(function() {
                console.log("离开");
            })
 </script>
jquery循环
节点循环
	jquery对象.each(function(i,o){})
	i:代表下标
	o:代表循环中的每一个元素(js对象) ,this:代表循环中的每一个元素(js对象)
	$(o):代表循环中的每一个元素(jquery对象),$(this):代表循环中的每一个元素(jquery对象)

数据循环
		$.each(arr,function(i,o){})  替代for
	var arr = [1, 2, 3, 4];
        $.each(arr, function(i, o) {
            console.log(i + ":" + o);
        })
        <!-- 平常用法 -->
        for(var i=0;i<arr.length;i++){
            console.log(i+":"+arr[i]);
        }

附加:

1 ==和===的区别?
 	==:值相同
 	===:值和类型相同
2 return可以单独使用么,如果能,代表什么意思?
只能出现在函数中:
	情况1:
		return  值  --返回
	情况2:  
		return ;  代表终止当前函数
什么叫闭包
闭包就是函数内部的函数
特点:能够保存局部遍历,不被GC回收

为什么要使用闭包?
	因为函数执行完毕后,GC会回收掉里面的所有的局部变量,但是如果在该函数中再定义一个函数则里面的函数就升级为闭包,而根据闭包的特性,就能够让外部函数中定义的局部变量一直保存再内存中,从而不会被GC回收

js使用闭包就能够获取i

 var cs = document.getElementsByTagName("input");
            for (var i = 0; i < cs.length; i++) {
                (function() {
                    var xx = i;
                    cs[i].onclick = function() {
                        alert(xx+":"+i);
                    }
                })()
            }

jquery直接使用即可

  $("input").each(function(i, o) {
                $(o).click(function() {
                    console.log(i);
                })
            })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值