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创建对象的写法
Aug 29 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
Vue分页组件实例代码
Apr 17 Javascript
详解http访问解析流程原理
Oct 18 Javascript
vue.js 使用axios实现下载功能的示例
Mar 05 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
vue.js element-ui tree树形控件改iview的方法
Mar 29 Javascript
jQuery实现的别踩白块小游戏完整示例
Jan 07 jQuery
如何实现一个简易版的vuex持久化工具
Sep 11 Javascript
VUE实现密码验证与提示功能
Oct 18 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_MySQL教程-第一天
2007/03/18 PHP
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
给Python初学者的一些编程技巧
2015/04/03 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
python字典的值可以修改吗
2020/06/29 Python
关于python中remove的一些坑小结
2021/01/04 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
毕业生的求职信范文分享
2013/12/04 职场文书
十佳青年事迹材料
2014/08/21 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
教你怎么用python实现字符串转日期
2021/05/24 Python
php双向队列实例讲解
2021/11/17 PHP