前端进阶——jQuery选择的艺术

jQuery是什么

是一款JavaScript 库

• 方便地处理HTML(处理HTML文档中的DOM节点,如添加、删除内容和样式等)、事件(通过jQuery对页面上的事件进行处理,如绑定、解绑一些事件)、动画(通过jQuery实现淡入、淡出、滑动、变形等动画)等

• 好处:可以兼容多浏览器

• 80%以上网站使用

安装和选择版本

下载jQuery: http://jquery.com/

压缩和非压缩版本

• Download the compressed, production jQuery

下载压缩版本,用于生产

• Download the uncompressed, development

jQuery 下载非压缩版本,用于开发

如何使用

<script src="jquery-3.1.0.js"></script>

如何选择版本

• V1.x:兼容IE6-8  所以1.x版本文件要比2.x版本大一些

• V2.x:不兼容IE6-8

• V3.x:分为精简版和普通版,也不兼容IE6-8,其中3.x普通版比2.x普通版差不多,只不过更新相应的API,加了相应的性能优化

我们一般要选择最新的1.x版本,因为要兼容一些低端浏览器,老版本浏览器,而且这三个版本差不多,会一个其他的也都会了

使用CDN

 

CDN--运营商分布在各个地区的节点服务器,让网络内容缓存在这些服务器上,所以各个地域的用户去看,都会很长的快。

CDN加速,各个互联网网站都会使用CDN,CDN可以放各种资源,视频,图片等等,所以jQuery也可以用CDN。

• Content Delivery Network 内容分发网络

https://code.jquery.com/

http://www.bootcdn.cn/  国内的CDN服务

<script src="//cdn.bootcss.com/jquery/3.3.1/core.js"></script>

  为什么没加https: 是因为为了让使用不同的主机头

CDN的好处:加载块,增加性能,比如一个域名绑定的文件只能同时下载4-8个文件,如果放置在多个域名下,那么就可以同时下载更多的文件了。

jQuery的基本概念

设计哲学

• Write less,do more

结构、表现和行为分离

$

• window.jQuery === window.$

$.xxx   

• $.each(…)

• $.noop

• $.toArray()

• …

$(xxx)  相当于返回jQuery对象

什么是jQuery对象:

1.是原生DOM对象的封装

2.jQuery对象和原生DOM对象不同

3.jQuery对象包含了很多方法,方便操作DOM元素

• $('#myDiv')

$('.myClass')

• …

jQuery对象转化为DOM对象

• $(domObject) ==> jQuery Object

• $(xxx).get(0) ==> DOM Object

• $(xxx)[0] ==> DOM Object

链式语法chaining

$('#divTest').text('Hello, world!')
$('#divTest').removeClass('blue')
$('#divTest').addClass('bold')
$('#divTest').css('color', 'red')

上面的代码可以写成这样:这样写可以一直去写比较方便,也不用每次都去查询对象

$('#divTest')
.text('Hello, world!')
.removeClass('blue')
.addClass('bold')
.css('color', 'red')

使用链式语法需要注意:当把jQuery对象转化成dom对象的时候,链式语法就会报错。链式语法中有一些破坏性的,需要用 .end 去初始化

$(document).ready(function(){…})

• vs window onload  这种体验不好,所以jQuery自己写了上面的那种方法,原因:如果加载一些结构完成的,但是又一些图片没完成,这个还会继续加载,如果引入了第三方的iframe,而这个第三方一直在加载,加载了一分钟,这样自己的页面也会被影响,所以jQuery才自己搞出一个:

$(document).ready(function(){…})

  ready方法要比onload方法快很多,平时不要把二者一起用,这样会让ready方法无效,直接用ready就好了。当然除非有特殊要求,就用onload

元素的选择

JavaScript中如何选择元素?

• document.getElementById()

• document.getElementsByName()

• document.getElementsByTagName()

• document.getElementsByClassName()

 

• document.querySelector()

• document.querySelectorAll()

 

  

 

posted @ 2018-04-14 23:44  千行路  阅读(103)  评论(0编辑  收藏  举报