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 相关文章推荐
鼠标图片振动代码
Jul 06 Javascript
鼠标移动到一张图片时变为另一张图片
Dec 05 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
Feb 23 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
在javascript中关于节点内容加强
Apr 11 Javascript
javascript 通用loading动画效果实例代码
Jan 14 Javascript
jquery操作angularjs对象
Jun 26 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
Oct 26 Javascript
深入浅析JavaScript中prototype和proto的关系
Nov 15 Javascript
vue子组件使用自定义事件向父组件传递数据
May 27 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 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实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
JSON辅助格式化处理方法
2013/03/26 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
python使用Image处理图片常用技巧分析
2015/06/01 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python实现简单遗传算法
2018/03/19 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
explicit和implicit的含义
2012/11/15 面试题
前台领班岗位职责
2013/12/04 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
服务质量承诺书
2014/03/27 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
大班开学家长寄语
2014/04/04 职场文书
文艺演出策划方案
2014/06/07 职场文书
学校社会实践活动总结
2014/07/03 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
php引用传递
2021/04/01 PHP
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android