jQuery设计思想


Posted in Javascript onMarch 07, 2017

前面的话

在深入了解jQuery的各个细节之前,需要对jQuery的设计思想有一个大致的了解。在遇到问题时, 知道应该使用jQuery的哪一个功能,然后迅速从手册中找到具体的用法。本文将详细介绍jQuery的设计思想

选择元素

jQuery的基本设计思想和主要用法,就是"选择某个网页元素,然后对其进行某种操作"。这是它区别于其他javascript库的根本特点

使用jQuery的第一步,往往就是将一个选择表达式,放进构造函数jQuery()(简写为$),然后得到被选中的元素

【模拟CSS选择元素】

$(document) //选择整个文档对象
$('#myId') //选择ID为myId的网页元素
$('div.myClass') // 选择class为myClass的div元素
$('input[name=first]') // 选择name属性等于first的input元素

【特有表达式选择】

$('a:first') //选择网页中第一个a元素
$('tr:odd') //选择表格的奇数行
$('#myForm :input') // 选择表单中的input元素
$('div:visible') //选择可见的div元素
$('div:gt(2)') // 选择所有的div元素,除了前三个
$('div:animated') // 选择当前处于动画状态的div元素

【多种筛选方法】

$('div').has('p'); // 选择包含p元素的div元素
$('div').not('.myClass'); //选择class不等于myClass的div元素
$('div').filter('.myClass'); //选择class等于myClass的div元素
$('div').first(); //选择第1个div元素
$('div').eq(5); //选择第6个div元素

写法

【方法函数化】

在原生javascript中,赋值操作符用的比较多。而在jQuery中,多使用函数传参的方式,也就是方法函数化

//原生
window.onload = function(){};
//jQuery
$(function(){});
//原生
div.onclick = function(){};
//jQuery
div.click(function(){});
//原生
div.innerHTML = '123';
//jQuery
div.html('123');

【链式操作】

选中网页元素以后,可以对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来

$('div').find('h3').eq(2).html('Hello');

分解开来,就是下面这样:

$('div') //找到div元素
.find('h3') //选择其中的h3元素
.eq(2) //选择第3个h3元素
.html('Hello'); //将它的内容改为Hello

这是jQuery最令人称道、最方便的特点。它的原理在于每一步的jQuery操作,返回的都是一个jQuery对象,所以不同操作可以连在一起

jQuery还提供了.end()方法,使得结果集可以后退一步

$('div')
.find('h3')
.eq(2)
.html('Hello')
.end() //退回到选中所有的h3元素的那一步
.eq(0) //选中第一个h3元素
.html('World'); //将它的内容改为World

【取赋值合体】

操作网页元素,最常见的需求是取得它们的值,或者对它们进行赋值。jQuery使用同一个函数来完成取值(getter)和赋值(setter),即"取值器"与"赋值器"合一。到底是取值还是赋值,由函数的参数决定

$('h1').html(); //html()没有参数,表示取出h1的值
$('h1').html('Hello'); //html()有参数Hello,表示对h1进行赋值

常见的取值和赋值函数如下

.html() 取出或设置html内容
.text() 取出或设置text内容
.attr() 取出或设置某个属性的值
.width() 取出或设置某个元素的宽度
.height() 取出或设置某个元素的高度
.val() 取出某个表单元素的值

需要注意的是,如果结果集包含多个元素,那么赋值的时候,将对其中所有的元素赋值;取值的时候,则是只取出第一个元素的值

[注意].text()例外,它取出所有元素的text内容

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
node.js中的socket.io入门实例
Apr 26 Javascript
jquery.multiselect多选下拉框实现代码
Nov 11 Javascript
AngularJS自定义指令实现面包屑功能完整实例
May 17 Javascript
Express的HTTP重定向到HTTPS的方法
Jun 06 Javascript
微信小程序url传参写变量的方法
Aug 09 Javascript
Vue全局分页组件的实现代码
Aug 10 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
jQuery 动态粒子效果示例代码
Jul 07 jQuery
Echarts.js无法引入问题解决方案
Oct 30 Javascript
Node.js读取文件内容示例
Mar 07 #Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 #Javascript
AngularJS的Filter的示例详解
Mar 07 #Javascript
js上下视差滚动简单实现代码
Mar 07 #Javascript
js实现下一页页码效果
Mar 07 #Javascript
原生JS中slice()方法和splice()区别
Mar 06 #Javascript
浅析vue component 组件使用
Mar 06 #Javascript
You might like
PHP数学运算与数据处理实例分析
2016/04/01 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
javascript window对象属性整理
2009/10/24 Javascript
JS判定是否原生方法
2013/07/22 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
幼师自我鉴定范文
2013/10/01 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
个人委托书格式
2014/04/04 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
市场营销专业自荐书
2014/06/10 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
给病人的慰问信
2015/03/23 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python