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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
完美实现js焦点轮播效果(一)
Mar 07 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
vue货币过滤器的实现方法
Apr 01 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
原生js实现下拉选项卡
Nov 27 Javascript
Webpack的Loader和Plugin的区别
Nov 09 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 header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python实现飞机大战微信小游戏
2020/03/21 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
Python如何转换字符串大小写
2020/06/04 Python
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
党支部公开承诺书
2014/03/28 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
保险专业求职信
2014/07/07 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
公司离职证明标准范本
2014/10/05 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL