jquery到底是什么
jQuery的官网 jQuery
jQuery就是一个js库,使用jQuery的话,会比使用JavaScript更简单。
jquery的版本问题
官网下载地址:Download jQuery | jQuery
jQuery版本有很多,分为1.x 2.x 3.x
1.x和2.x版本jquery都不再更新版本了,现在只更新3.x版本。
jquery的引入
在线引入
找一些在线官网如bootstrap官网的jquery,搜索bootstrap.cdn即可,但必须要确保再有网络的情况下使用。
<!--引入在线 boot cdn --> <!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script> -->
本地引入
将官网的jQuery文件下载下来引用即可
<!-- 引入本地jQuery --> <script src="jquery-3.6.0.js"></script>
jquery的入口函数
使用jQuery的四个步骤:
- 引入jQuery文件
- 检测引入是否成功
- 入口函数
- 功能实现
// 检测jquery是否引入成功 alert(jQuery); alert($);// 总结得到$ == jQuery
关于jQuery的入口函数:
//第一种写法 $(document).ready(function() { }); //第二种写法 $(function() { });
jQuery入口函数与js入口函数的区别:
- JavaScript的入口函数要等到页面中所有资源(包括图片、文件)加载完成才开始执行。
- jQuery的入口函数只会等待文档树加载完成就开始执行,并不会等待图片、文件的加载。
jq对象和dom对象(重要)
DOM对象:使用JavaScript中的方法获取页面中的元素返回的对象就是dom对象。
jQuery对象:jquery对象就是使用jquery的方法获取页面中的元素返回的对象就是jQuery对象。
jQuery对象其实就是DOM对象的包装集包装了DOM对象的集合(伪数组)
DOM对象与jQuery对象的方法不能混用。
获取jQuery对象 $("dom对象选择器")
jQuery获取jQuery对象 $("dom对象选择器") 原理解析 // js获取元素对象 var _box = document.getElementById("box"); // $(dom对象) === $(document.getElementById("box")) 实例 $("#box"); // 所以$("#box") === document.getElementById("box")
dom对象转换jquery对象
dom对象转换为jquery对象 $(dom对象); 如 $(_box);//_box是已获取的jsDOM对象
jquery对象转换为dom对象
jquery对象 转换为 dom对象 //方法一 jQuery对象[索引] //方法二 jQuery对象.get(索引) 如 $("div")[0];
jquery选择器
选择器参考:https://www.runoob.com/jquery/jquery-traversing-filtering.html
https://www.runoob.com/jquery/jquery-traversing-filtering.html
基本选择器
名称
用法
描述
ID选择器
$(“#id”);
获取指定ID的元素
类选择器
$(“.class”);
获取同一类class的元素
标签选择器
$(“div”);
获取同一类标签的所有元素
并集选择器
$(“div,p,li”);
使用逗号分隔,只要符合条件之一就可。
交集选择器
$(“div.redClass”);
获取class为redClass的div元素
总结:跟css的选择器用法一模一样。
层级选择器
名称
用法
描述
子代选择器
$(“ul>li”);
使用>号,获取儿子层级的元素,注意,并不会获取孙子层级的元素
后代选择器
$(“ul li”);
使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等
总结:跟css的选择器用法一模一样。
过滤选择器
名称
用法
描述
:eq(index)
$(“li:eq(2)”).css(“color”, ”red”);
获取到的li元素中,选择索引号为2的元素,索引号index从0开始。
:odd
$(“li:odd”).css(“color”, ”red”);
获取到的li元素中,选择索引号为奇数的元素
:even
$(“li:even”).css(“color”, ”red”);
获取到的li元素中,选择索引号为偶数的元素
总结:这类选择器都带冒号
筛选选择器(方法)
名称
用法
描述
children() $(“ul”).children(“li”)
方法返回被选元素的所有直接子元素。
相当于$(“ul>li”),子类选择器
find() $(“ul”).find(“li”);
方法返回被选元素的后代元素,一路向下直到最后一个后代。
相当于$(“ul li”),后代选择器
first() 例子选取首个 <div> 元素内部的第一个 <p> 元素
$("div p").first();
方法返回被选元素的首个元素。 last() 例子选择最后一个 <div> 元素中的最后一个 <p> 元素
$("div p").last();
方法返回被选元素的最后一个元素。 siblings(selector)
例子返回属于 <h2> 的同胞元素的所有 <p> 元素
$("h2").siblings("p");
查找兄弟节点,不包括自己本身。
parent()
$(“#first”).parent();
查找父亲
parents() $(“#first”).parents(); 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。 eq() $(“li”).eq(2);
方法返回被选元素中带有指定索引号的元素。索引号从 0 开始,因此首个元素的索引号是 0 而不是 1 next()
$(“li”).next()
找下一个兄弟
nextAll() $("h2").nextAll(); 方法返回被选元素的所有跟随的同胞元素。 nextUntil() 例子返回介于 <h2> 与 <h6> 元素之间的所有同胞元素
$("h2").nextUntil("h6");
方法返回介于两个给定参数之间的所有跟随的同胞元素。
prev()
$(“li”).prev()
找上一次兄弟
prevAll(),prevUntil() 用法与next()一系列方法向同,不过方向相反 总结:筛选选择器的功能与过滤选择器有点类似,但是用法不一样,筛选选择器主要是方法。
:nth-child()选择器详细功能描述:
:nth-child(even)能选择每个父元素下的索引值是偶数的元素
:nth-child(odd)选择出每个父元素下的索引值是奇数的元素
:nth-child(2)选取每个父元素下的索引值等于2的元素
:nth-child(3n)能选出每个父元素下的索引值是3的倍数的元素,n从0开始
:nth-child(3n+1)能选取每个父元素下的索引值是3n+1的元素.n从0开始
表单选择器
选择器
描述
返回值
示例
:input
匹配所有<input> <textarea> <select> <button>元素
集合元素
$(“:input”) 同描述
:text
选择所有单行文本框
集合元素
$(“:text”)匹配所有单行文本框
:password
选择所有密码框
集合元素
$(“:password”)
:radio
选择所有单选框
集合元素
$(“:radio”)
:submit
匹配所有提交按钮
集合元素
$(“:submit”)
:image
匹配所有图像按钮
集合元素
$(“:image”)
:reset
匹配所有重置按钮
集合元素
$(“:reset”)
:button
匹配所有按钮
集合元素
$(“:button”)
:file
匹配所有文件域
集合元素
$(“:file”)
:hidden
匹配所有不可见元素
集合元素
$(“:hidden”)
样式设置
设置单条样式 .css(“属性名”,”属性值”)
设置多条样式 .css({“属性名1”:”属性值1”,”属性名2”:”属性值2”,……})
样式获取
获取样式值 .css(“属性名”)
增加类 可增加多个类
.addClass(“类名1 类名2 ……”) 多个类名之间用空格隔开
删除类 可删除多个类
.removeClass()//为空代表全部删除
增删判断
.toggleClass(“类名”) //有此类则删除,没有则添加,为空代表全部删除
.toggleClass(“类名”,true/false) 用来判断样式类添加还是移除的 布尔值
<script> $(".box").addClass("bg");//添加类 // $(".box").removeClass("bg");//删除类 // $(".box").removeClass();//全部删除 // $(".box").toggleClass("box fz");//有则删 无则加 // $(".box").toggleClass();//全部删除 // $(".box").toggleClass("fz");//有则删 无则加 $(".box").toggleClass("fz", true);//true表示只能添加类 false则为只能删除类 </script>
属性设置
/*1.获取属性*/ $('li').attr('属性名'); /*2.设置属性*/ $('li').attr('属性名','属性值'); /*3.设置多个属性*/ $('li').attr({'属性名1':'属性值1','属性名2':'属性值2'...}); /*4.删除属性*/ $('li').removeAttr('属性名');
元素内容操作
获取内容
获取: jquery对象.text() / jquery对象.html() / jquery对象.val() 注意点: ps: 如果jquery对象是多个时, jquery对象.html() / jquery对象.val()获取时, 获取的是第一个jquery对象里的内容
设置内容
设置: jquery对象.text(内容) / jquery对象.html(内容) / jquery对象.val(内容)
事件绑定(后续学到继续整理)
jquery对象.bind("事件名1 事件名2 ...", function () {}); jquery对象.bind({ 事件名1: function () {}, 事件名1: function () {} });
动画
注意:()中需要传参才可看到动画效果
show()//显示 宽高 透明度 一起变 show出现方向由基点决定 如定位后写right:200px;
hide()//隐藏 宽高 透明度 一起变 hide与show同理
slideDown() /高度增加
slideUp() /高度减小
toggle() /切换
slideToggle() /滑入滑出
fadeIn() /淡入
fadeOut() /淡出
fadeToggle() /淡入淡出
fadeTo(时长,不透明度,[callback]) //设置淡入淡出效果到一定的不透明度 fadeToggle()
fadeTo(2000, 0.5, function () { }) /不透明度值可设置 较特殊 语法中参数与其他不同
基本动画
/*注意:动画的本质是改变容器的大小和透明度*/ /*注意:如果不传参数是看不到动画*/ /*注意:可传入特殊的字符 fast normal slow*/ /*注意:可传入数字 单位毫秒*/ /*1.展示动画*/ $('li').show(); /*2.隐藏动画*/ $('li').hide(); /*3.切换展示和隐藏*/ $('li').toggle();
滑入滑出
/*注意:动画的本质是改变容器的高度*/ /*1.滑入动画*/ $('li').slideDown(); /*2.滑出动画*/ $('li').slideUp(); /*3.切换滑入滑出*/ $('li').slideToggle();
淡入淡出
/*注意:动画的本质是改变容器的透明度*/ /*1.淡入动画*/ $('li').fadeIn(); /*2.淡出动画*/ $('li').fadeOut(); /*3.切换淡入淡出*/ $('li').fadeToggle(); $('li').fadeTo('speed','opacity');
动画还有欠缺,后续继续整理