jQuery发布于2006年,时至今日依然是世界上使用最广泛的库,全球超过80%的网站仍在使用jQuery。
在未正式学习前端之前也时常听闻这个库,大抵是因为稳定性高、兼容性好,且功能强大。
接下来简要说说自己在学习过程中对jQuery的设计的一些理解。
1. jQuery 如何获取元素
jQuery是一个不需要使用new的构造函数,jQuery对象指的是由jQuery函数构造出来的对象。jQuery的基本设计思想和主要用法,就是"选择某个网页元素,然后对其进行某种操作"。使用jQuery的第一步,就是获取元素。
获取元素的方式为window.jQuery(selector),此处window可省略,selector为CSS选择器,例如:
- jQuery(document) //选择整个文档
- jQuery('#test') //获取id为test的元素
- jQuery('.red') //获取class含有red的元素
jQuery为函数取了别名,即
window.$ = window.jQuery,以上代码均可用$()代替jQuery().
2. jQuery 的链式操作
jQuery的一个重点即是链式操作,基本思想是选中网页元素以后,可以对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来。
设计思路可以概括为:在jQuery函数中构造一个对象,假设其为API对象,该对象上包含对元素进行各项操作的函数(键值对形式),最后该函数返回此API对象,即jQuery对象。通过这样的设计,使得不同的操作可以连在一起。
$('div') //选择div元素
.find('child') //查找div元素中的child元素
.addClass('blue') //给child元素的class添加blue
.end() //退回到div
.addClass('green') //给div元素的class添加green
3. jQuery 如何创建元素
jQuery中创建新元素十分简单,只需要将新元素传入jQuery的构造函数即可:
$('<p>Hello</p>'); //创建一个p元素
$('<li class="new">new list item</li>'); //创建一个li元素
$('ul').append('<li>list item</li>'); //在ui元素下添加li元素
4. jQuery 如何移动元素
jQuery中提供了两种移动元素的方法:
- 直接移动该元素
- 移动其他元素,使目标元素达到理想位置
如
.insertafter()和.after()
$('div').insertAfter($('p')) //将div元素移动到p元素后面
$('p').after($('div')) //将p元素追加到div元素前面
区别:前者返回div元素,后者返回p元素
5. jQuery 如何修改元素的属性
jQuery的其中一个设计思想是,使用同一个函数,来完成取值(getter)和赋值(setter)。通过重载,识别arguments的长度来决定是取值还是赋值。
$div.text(?) //读写文本内容
$div.html(?) //读写html内容
$div.attr('title',?) //读写属性
$div.css({color:'red'}) //读写style
$div.addClass('blue') //添加属性
$div.on('click',fn) //设置监听事件
$div.off('click',fn) //关闭监听事件
$div.removeAttr('name') //删除name属性