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 相关文章推荐
非常不错的一个javascript 类
Nov 07 Javascript
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
js实现拖拽 闭包函数详细介绍
Nov 25 Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 Javascript
自定义require函数让浏览器按需加载Js文件
Nov 24 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
js调用刷新界面的几种方式
May 03 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
教你如何用node连接redis的示例代码
Jul 12 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 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
Zend公司全球首推PHP认证
2006/10/09 PHP
一个php作的文本留言本的例子(二)
2006/10/09 PHP
实用函数10
2007/11/08 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
JS闭包的几种常见形式实例详解
2017/09/16 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
python装饰器初探(推荐)
2016/07/21 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
写给女朋友的道歉信
2014/01/08 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
英语简历自我评价
2014/01/26 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
库房保管员岗位职责
2014/04/07 职场文书
学校教师安全责任书
2014/07/23 职场文书
装修施工安全责任书
2014/07/24 职场文书
惊天动地观后感
2015/06/10 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python