感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
但是 jQuery只有PC端,没有移动端,而且只对 DOM 操作的每一步进行了简化,没有减少步骤,所以用的会越来越少。
二、jQuery的使用
到官网jQuery进行下载即可,下载版本后引入网页。
1. 将 jQuery 引入网页的方法
(1)将 jquery.js 文件下载到项目本地文件夹,用相对路径引入
<script src="js/jquery-1.11.3.js">
(2)引入 CDN 网络中的 jquery.js 文件
CDN 网络可在全球范围共享一个文件;任意地区的一个客户端想用 CDN 网络中的文件时,CDN 网络都会从距离这个客户端网络最优的服务器下载资源给客户端。
<script src="官网提供的CDN网址">
//eg:微软提供的cdn网址:
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.js">
举例:对比 DOM 与 jQuery 写法;
三、jQuery原理
1. 引入 jquery.js 文件后,会在内存中新增一种类型,包括:
(1)构造函数:创建该类型的子对象;
(2)原型对象:集中保管该类型所有子对象共用的方法。
2. 使用 jQuery 函数库中的函数时,需要先创建 jQuery 类型的子对象
//标准写法
var jq子对象=new jQuery(选择器);
//简写
var jq子对象=jQuery(选择器)
var jq子对象=$(选择器) //$相当于new jQuery 1.查找DOM元素 2.创建jQuery对象
只有 jQuery 子对象才能访问 jQuery 原型对象中的简化版共有方法。原生的 DOM 元素对象无权使用 jQuery 原型对象中的简化版函数。
3. jQuery 中事件处理函数里的 this
.click 会翻译为 .οnclick=function(){ … },再执行,所以 .click() 中的 this,其实还是 .onclick 里的 this。与 DOM 中的 this 完全一样,都指向正在点击的当前原生 DOM 元素对象本身;jquery 中所有事件处理函数中的this都必须用 $() 包裹起来(包装),形成一个 jQuery 子对象,才可以使用 jQuery 函数库中的函数。
四、 jQuery API三大特点
1.自带for循环遍历
只对 jQuery 查找结果对象调用一次简化版函数,就可以自动遍历查找结果中每个 DOM 元素,自动为每个 DOM 元素应用多用的 DOM 操作
2.一个函数两用
和修改相关的函数,都既能用于修改新值,又能用于获取旧值;
调用函数时,没有传新值参数,函数默认执行获取旧值操作,
调用函数时,传了新值参数,函数自动改为执行修改为新值操作。
举例:有多个按钮,记录每个按钮的单击次数;
<body>
<h1>jQueryAPI特点</h1>
<button id="btn1">click me(0)</button>
<button id="btn2">click me(0)</button>
<button id="btn3">click me(0)</button>
<script src="js/jquery-1.11.3.js"></script>
<script>
//为三个按钮绑定单击事件,记录单击次数
//DOM 4步
//1. 查找触发事件的元素
var $btn = $("button");
//2. 绑定事件处理函数
$btn.click(function () {
//3. 查找要修改的元素:本例中改当前按钮,所以用this
var $this = $(this);
//4. 修改元素
var n = parseInt(
$this.html().slice(9, -1)
);
n++;
$this.html(`click me(${n})`)
});
</script>
</body>
五、查找元素
jQuery 主要通过选择器的方式查找元素,除了原始 CSS 选择器之外,还添加了额外 jQuery 专属的选择器。
1. 子元素过滤选择器(css选择器)
:first-child | 所有父元素下第一个直接子元素 |
:last-child | 所有父元素下最后一个直接子元素 |
:nth-child(i) | 所有父元素下第i个直接子元素 |
:only-child | 所有父元素下唯一的一个子元素 |
注意:css中下标从1开始 |
举例:使用子元素过滤选择器选择指定元素;
<body>
<h3>子元素过滤选择器.</h3>
<ul>
<li>child1-basic0</li>
<li>child2-basic1</li>
<li>child3-basic2</li>
</ul>
<ul>
<li>child1-basic3</li>
<li>child2-basic4</li>
<li>child3-basic5</li>
</ul>
<ul>
<li>child1-basic6</li>
</ul>
<script src="js/jquery-1.11.3.js"></script>
<script>
//查找每个ul中第一个li,让其字体颜色变为红色
$("ul>li:first-child").css("color", "red");
//查找每个ul中最后一个li,让其边框变为绿色
$("ul>li:last-child").css("border", "1px solid green");
//查找每个ul中处于偶数位置的,让其背景变为黄色
$("ul>li:nth-child(2n)").css("background", "yellow");
//查找每个ul中第2个li,添加蓝色阴影
$("ul>li:nth-child(2)").css("box-shadow", "0 0 10px blue");
//查找作为ul下唯一子元素的li,设置20px内边距
$("ul>li:only-child").css("padding", "20px");
</script>
</body>
2. 基本过滤选择器(jQuery专属)
先将所有符合要求的元素集中保存到一个大的集合中从0开始统一编号,按元素在集合中的统一编号来选择指定的元素。
:first :last | 在结果集合中排名第一或最后一个的元素 |
:eq(i) :lt(i) :gt(i) | 选择在结果集合中下标i等于i、小于i、大于i位置的元素(不包括i) |
:even :odd | 选择在结果集合中下标位置i等于偶数位置或奇数位置的元素 |
注意:jQuery中下标从0开始 |
举例:使用基本过滤选择器选择指定元素;
<body>
<h3>基本过滤选择器.</h3>
<ul>
<li>child1-basic0</li>
<li>child2-basic1</li>
<li>child3-basic2</li>
</ul>
<ul>
<li>child1-basic3</li>
<li>child2-basic4</li>
<li>child3-basic5</li>
</ul>
<ul>
<li>child1-basic6</li>
</ul>
<script src="js/jquery-1.11.3.js"></script>
<script>
//查找第一个li,字体变化红色
$("li:first").css("color", "red");
//查找最后一个li,边框变为绿色
$("li:last").css("border", "1px solid green");
//查找处于(正常人眼)偶数位置的li,背景变为黄色
$("li:odd").css("background", "yellow");
//查找第2个li,添加蓝色阴影
$("li:eq(2)").css("box-shadow", "0 0 10px blue");
</script>
</body>
3. 内容过滤器(jQuery专属)
根据元素的内容不同来选择元素。
:contains(文本) | 选择内容中包含指定文本关键字的元素 |
:has(其它选择器) | 选择子元素中包含符合选择器要求的元素的父元素 |
:parent | 选择内容非空的元素 |
:empty | 选择内容为空的元素 |
举例:使用内容过滤选择器选择指定元素;
<body>
<div class="container">
<h1>内容过滤选择器</h1>
<button>提交订单</button>
<button>Submit注册信息</button>
<button>马上提交</button>
<button>清空重填</button>
<hr />
<div class="alert"></div>
<div class="alert">
<span class="close">×</span>
</div>
</div>
<script src="js/jquery-1.11.3.js"></script>
<script>
//选择包含"提交"二字的按钮,变为绿色按钮
$("button:contains(提交)").css("background-color", "green");
//选中包含.close按钮的.alert元素,让它们变为红色的警告框
$(".alert:has(.close)").css("background-color", "red");
//选中不包含.close按钮的.alert元素,让它们变为绿色的警告框
$(".alert:not(:has(.close))").css("background-color", "green");
//选择内容为空的.alert元素,添加红色阴影
$(".alert:empty").css("box-shadow", "0 0 10px red");
//选择内容不为空的.alert元素,添加绿色阴影
$(".alert:parent").css("box-shadow", "0 0 10px green");
</script>
4. 可见性过滤(jQuery专属)
根据元素是否可见来选择元素;
:visible | 选择可见的元素 |
:hidden | 选择不可见的元素 |
举例:使用 :hidden 选择不可见的元素;
<body>
<div class="container">
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
* * *
**(1)Python所有方向的学习路线(新版)**
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/8fc093dcfa1f476694c574db1242c05b.png)
**(2)Python学习视频**
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d66e3ad5592f4cdcb197de0dc0438ec5.png#pic_center)
**(3)100多个练手项目**
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f5aeb4050ab547cf90b1a028d1aacb1d.png#pic_center)
**(4)200多本电子书**
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
**(5)Python知识点汇总**
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c741a91b05a542ba9dc8abf2f2f4b1af.png)
**(6)其他资料**
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9fa77af248b84885a6ec779b2ead064d.png)
**这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**