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打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
谈谈JavaScript数组常用方法总结
Jan 24 Javascript
基于bootstrap写的一点localStorage本地储存
Nov 21 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
微信小程序实现多选删除列表数据功能示例
Jan 15 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
Sep 05 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP 文件系统详解
2012/09/13 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
浅析php数据类型转换
2014/01/09 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
详解python with 上下文管理器
2020/09/02 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
报关员个人职业生涯规划书
2014/03/12 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
心术观后感
2015/06/11 职场文书
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript