JQuery笔记

JQuery笔记

一.了解

JavaScript库

即library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动画animate,hide,show,比如获取元素等
简单理解:
就是一个JS文件,里面对我们原生js代码进行了封装,存放到里面,这样我们可以快速高效的使用这些封装好的功能,
比如jQuery,就是为了快速方便的操作DOM,里面基本都是函数(方法);

常见的JavaScript库

  • JQuery
  • Prototype
  • YUI
  • Dojo
  • Ext Js
  • 移动端的zepto
  • 这些库都是对原生JavaScript的封装,内部都是用JavaScript实现的。

JQuery的概念

  • JQuery是一个快速,简洁的JavaScript库,倡导写更少的代码,做更多的事情
  • J就是JavaScript;Query查询,意思就是查询JS,把JS中的DOM操作做了封装,我们可以快速的查询使用里面的功能
  • JQuery封装了JavaScript常用的功能代码,优化了DOM操作,事件处理,动画设计和Ajax交互
  • 学习jQuery本质:就是学习调用这些函数(方法)
  • jQuery出现的目的是加快前端人员的开发速度,我们可以非常方便的调用和使用它,从而提高开发效率
    在这里插入图片描述

二.基本使用

JQuery的入口函数

$(function(){
......//此处是页面DOM加载完成的入口
})$(document).ready(function(){
......//此处是页面DOM加载完成的入口
});
  • 等着DOM结构渲染完毕即可执行内部代码,不必等到外部资源加载完成,jQuery帮我们完成了封装
  • 相当于原生js中的DOMContentLoaded
  • 不同于原生js中的load事件是等页面文档,外部的js文件,css文件,图片加载完毕才执行内部代码

JQuery对象和DOM对象

  • 用原生js获取的对象就是Dom对象
  • JQuery方法获取的元素就是JQuery对象
  • JQuery对象的本质是:利用$对Dom对象包装后产生的对象(伪数组形式存储)
  • 控制台打印出来的结果不同
  • JQuery对象只能使用 JQuery 方法,DOM对象则使用原生的JavaScirpt属性和方法
var myDiv =document.querySelector("div");//myDiv 是DOM对象
$("div");//$("div")是jQuery对象

$("div").style.display="none";//错误
myDiv.hide();//错误
  • $是JQuery的别称,在代码中可以使用JQuery代替$,但一般为了方便,通常都直接使用$
  • $是jQuery的顶级对象,相当于原生JavaScript中的window,把元素利用$包装成jQuery对象,就可以调用jQuery的方法
DOM对象与jQuery对象可以相互转换
//DOM对象转换为jQuery对象:
$(DOM对象)

//jQuery对象转换为DOM对象(两种方式)	
$('div')[index]   index 是索引号
$('div').get(index)  index是索引号

//例:
var myvideo =document.querySelector("video");
    $(myvideo);
   $("video")[0].play();
   $("video").get[0].play();

JQuery选择器

JQuery基础选择器
$("选择器");//里面选择器直接写CSS选择器即可,但是要加引号

在这里插入图片描述
在这里插入图片描述

隐式迭代

概念:遍历内部dom元素(伪数组形式存储)的过程 (将匹配的所有元素内部进行循环遍历,给每一个元素添加css这个方法)

//jQuery设置样式
$('div').css('属性','值');

//获取四个div元素
console.log($("div"));

//给四个div设置其背景颜色为粉色
$("div").css("background","pink");
jQuery筛选选择器
$("li:first");//获取第一个li元素
$("li:last");//获取最后一个li元素
$("li:eq(2)");//获取到的li元素中,选择索引号为2的元素,索引号Index从0开始
$("li:odd");//获取到的li元素中,选择索引号为奇数的元素
$("li:even");//获取到的li元素中,选择索引号为偶数的元素
$(function(){
$("ul li:first").css("color","red");//获取ul内第一个li,颜色为红色
$("ul li:eq(2)").css("color","blue");//获取ul中的li索引号为2的元素,设置其颜色为蓝色
})
jQuery筛选方法
//常见
$("li").parent();//查找父级
$("li").parents("需要查找到的元素");//查找其祖先级
$("ul").children("li");//相当于$("ul>li"),最近一级
$("ul").find("li");//相当于$("ul li"),后代选择器
$("li").eq(2); //相当于$(li:eq(2)"),index从0开始,更推荐这种写法 
//不常见
$(".first").siblings("li");//除开自己本身的兄弟元素
$(".first").nextAll();//查找当前元素之后所有的同辈元素
$(".last").prevAll();//查找当前元素之前所有的同辈元素
$("div").hasClass("protected");//检查当前的元素是否含有某个特定的类,有则返ture
jQuery中的排他思想
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<script>
$(function(){
    //隐式迭代 给所有的按钮都绑定了点击事件
$("button").click(function(){
    //当前的元素变化背景颜色
     $(this).css("background","pink");
     //其余的兄弟去掉背景颜色 隐式迭代
     $(this).siblings("button").css("background","");
});
});
</script>

三.JQuery样式操作

JQuery样式

//参数只写属性名,则返回属性值
$(this).css("color");
//参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,但若值是数字可以不用加引号
$(this).css("color","red");
//参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开,属性可以不用加引号
$(this).css({"color":"white","font-size":"20px"});


$("div").css({
   width:400,
   height:400, 
   backgroundColor:"red"
   //若为复合属性值则需要采取驼峰命名法,若值不是数字,则需要加引号
});

设置类样式方法(其中类名不需要加" . ")

//添加类 addClass()
$("div").addClass("current");
<body>
<style>
.current{
  background:red 
}
</style>
   <div><div>
   $(function(){
          $("div").click(function(){
             $(this).addClass("current");
         });
    });
</body>

//删除类  removeClass()
$("div").click(function(){
     $(this).addClass("current");
});//样式写法同上
//切换类 toggleClass()//添加或移除类名
    $("div").click(function(){
      $(this).toggleClass("current");
});
类操作与className的区别
  • 原生js中className会覆盖元素原先的类名
  • jQuery里面的类操作只是对指定类进行操作,并不影响原先的类名(相当于对原先的类名进行追加,并不影响以前的类名)

四.jQuery效果

显示隐藏效果

//显示语法规范
show([speed,[easing],[fn]]);
//隐藏语法规范
hide([speed,[easing],[fn]]);
//切换语法规范
toggle([speed,[easing],[fn]]);

滑动效果

//下滑效果语法规范
slideDown([speed,[easing],[fn]]);
//上滑效果语法规范
slideUp([speed,[easing],[fn]]);
//滑动切换效果语法规范
slideToggle([speed,[easing],[fn]]);
//简洁版滑动菜单
$("div").hover(function(){
$(this).childern("ul").slideToggle();
});

淡入淡出效果

//淡入
fadeIn([speed],[easing],[fn]);
//淡出
fadeOut([speed],[easing],[fn]);
//淡入淡出切换
fadeToggle([speed],[easing],[fn]);
//透明度
fadeTO()([speed],0,[easing],[fn]);//s,0必须要写
$("div").fadeTo(1000,0.5);

显示参数

  • 参数都可以省略,无动画直接显示。
  • speed:三种预定速度之一的字符串(“slow”,“normal”,“fast”)或表示动画时长的毫秒数值
  • easing:(Optional)用来指定切换效果,默认是“swing”,可用参数“linear"
  • fn:回调函数,在动画完成时执行的函数,每个元素执行一次
  • opacity:透明度必须写,取值0-1之间

自定义动画animate

//语法
animate(params,[speed],[easing],[fn]);
//参数
//params:想要更改样式属性,以对象的形式传递,必写。

解决排队问 题

动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行

stop().什么发生排队的事件;//需在动画或者效果之前添加

五.JQuery属性操作

设置获取元素的固有属性prop()

所谓元素固有属性就是元素本身自带的属性,比如元素里面的href,比如元素里面的type

//获取属性
prop("属性")
//设置属性语法
prop("属性""属性值")

设置或获取元素的自定义属性值attr()

//获取属性
attr("属性")
//设置属性语法
attr("属性""属性值")

数据缓存data()

data()方法可以值指定的元素上存取数据,并不会修改DOM元素结构,一旦页面刷新,之前存放的数据都将被移除

//可以在指定的元素上缓存数据
data()

六.JQuery内容文本值获取

普通元素内容html()

//获取元素内容
html()
//设置元素内容
html("内容")

普通元素文本内容text()

//获取元素内容
text();//不加标签 
//设置元素内容
text("内容");

获取设置表单值

获取设置表单值val("内容")

截取字符串

substr();

保留小数

toFixed(保留几位填几位);

七.JQuery元素操作

遍历元素

//语法一:
$("div".each(function(index,domEle){xxx;}));
//语法二:
$.each(object,function(index,element){xxx;});//可以用于遍历任何对象

index//索引
domEle//对象

取整

parseInt();
parseFloat();//保留浮点数

创建元素

//创建元素
var li =$("<li>xxx</li>");
//(1.内部添加)//生成后为父子关系
append();//内部添加,放入到匹配元素内部最后面
prepend();//内部添加并且放到内容的最前面
//(2.外部添加)//生成后为兄弟关系
after();//把内容放到目标元素后面
before();//把内容放到目标元素前面

删除元素

remove();//直接删除匹配元素
empty();//删除匹配元素集合中所有子节点
html();//清空匹配的元素内容

八.jQuery事件

jQuery事件事件注册

//单个事件注册
//语法:
element.事件(function(){})
$("div").click(function(){事件处理程序});

事件语法

//on()方法在匹配元素上绑定一个或多个事件处理函数
//语法:
//element.on(events,[selector],fn); 
//1.events:一个或多个用空格分隔的事件类型
//2.selector:元素的子元素选择器
//3.fn回调函数

//若多个事件处理程序相同可同时输写,中间用空格键隔开
$("div").on("a b",function(){
      
} );

事件委派

//例子:
$("ul").on("click","li",function(){xxx});
//click是绑定在ul身上的, 但是 触发的对象是 ul 内的 li

可以给未来动态创建的元素绑定事件

$("ol").on("click","li",function(){
  alert(li);
})
var li = $("<li>后来创建<li>");
$("ol").append(li);

事件处理off()解绑事件

off();//可以移除通过On()方法添加的事件处理程序
off("内容");//可以移除其内容的事件
off("" "");//解绑事件委托
one();//仅触发一次事件

自动触发事件trigger()

//方式一:
click();//元素.事件()//会触发元素的默认行为
//方式二:
元素.trigger("事件");//会触发元素的默认行为
//方式三:
元素.triggerHandler("click");//不会触发元素的默认行为

jQuery事件对象(有事件被触发就会有事件对象的产生)

elment.on(events,[selectior],function(event){});
event.preventDefault();//或者return false//阻止默认行为
event.stopPropagation();//阻止冒泡

jQyery内其他方法

//拷贝对象
$.extend([deep],target.object1,[objectN])//拷贝后会覆盖之前的内容
1.deep:
如果设为true为深拷贝//将其数据完全复制一份给目标对象,若里面有不冲突的属性,则会合并在一起
默认为false浅拷贝//把原来对象里面的复杂数据类型地址拷贝给目标对象
2.target:要拷贝的目标对象
3.object1:待拷贝到第一个对象的对象

九.其它

多库共存

//如果`$`符号冲突  我们可以使用jQuery
//让jQuery释放对`$`的控制权 :
var 自定义 = jQuery.noConflict();

插件

jQuery插件库

jQuery之家

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月落乌江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值