jQuery编程中的一些核心方法简介


Posted in Javascript onAugust 14, 2015

调用 jQuery 对象的方法很简单:

$('h1').remove();

大多数 jQuery 方法都是像上面这样被调用的,这些方法都位于 $.fn 命名空间内,这些方法称为 jQuery 对象方法。

但是也有一些方法不需要依赖于选择器的结果集,这些方法位于 jQuery 命名空间内,这些方法称为 jQuery 核心方法。如果觉得不好理解,记住下面两条即可:

  1.     所有 jQuery 选择器的方法都位于 $.fn 命名空间内。
  2.     $ 内的方法一般都是一些实用的功能性方法,这些方法不依赖选择器,这些方法的参数和返回值也都大不相同。

有些对象方法跟核心方法的名称还会相同,例如 $.fn.each 和 $.each,使用的时候需要格外注意。

jQuery 的 $ 命名空间中提供了很多实用方法:

去除字符串两遍的空白:

$.trim('  lots of extra whitespace  ');
// 返回 'lots of extra whitespace'

对数组和对象进行迭代:

$.each([ 'foo', 'bar', 'baz' ], function(idx, val) {
  console.log('element ' + idx + 'is ' + val);
});

$.each({ foo : 'bar', baz : 'bim' }, function(k, v) {
  console.log(k + ' : ' + v);
});

返回数组中某元素的索引,如果元素不存在则返回 -1

var myArray = [ 1, 2, 3, 5 ];

if ($.inArray(4, myArray) !== -1) {
  console.log('找到了');
}

用一个对象去扩展另外一个对象:

var firstObject = { foo : 'bar', a : 'b' };
var secondObject = { foo : 'baz' };

var newObject = $.extend(firstObject, secondObject);
console.log(firstObject.foo); // 'baz'
console.log(newObject.foo);  // 'baz'

如果不想改变第一个对象中的值,在 $.extend 的第一个参数中传入一个空对象即可:

var firstObject = { foo : 'bar', a : 'b' };
var secondObject = { foo : 'baz' };

var newObject = $.extend({}, firstObject, secondObject);
console.log(firstObject.foo); // 'bar'
console.log(newObject.foo);  // 'baz'

改变函数的作用域:

var myFunction = function() { console.log(this); };
var myObject = { foo : 'bar' };

myFunction(); // logs window object

var myProxyFunction = $.proxy(myFunction, myObject);
myProxyFunction(); // logs myObject object

再结合事件看如何改变函数的作用域:

var myObject = {
  myFn : function() {
    console.log(this);
  }
};

$('#foo').click(myObject.myFn); // logs DOM element #foo
$('#foo').click($.proxy(myObject, 'myFn')); // logs myObject

JavaScript 本身有类型检测的方法,jQuery 中也有,并且做得更好:

var myValue = [1, 2, 3];

// 用 JavaScript 的 typeof 操作符来判断类型
typeof myValue == 'string'; // false
typeof myValue == 'number'; // false
typeof myValue == 'undefined'; // false
typeof myValue == 'boolean'; // false

// 用恒等于 检测 null
myValue === null; // false

// 使用 jQuery 的方法来判断类型
jQuery.isFunction(myValue); // false
jQuery.isPlainObject(myValue); // false
jQuery.isArray(myValue); // true

向 HTML 元素添加额外的数据:

$('#myDiv').data('keyName', { foo : 'bar' });
$('#myDiv').data('keyName'); // { foo : 'bar' }

所要添加的数据可以是任意类型:

$('#myList li').each(function() {
  var $li = $(this), $div = $li.find('div.content');
  $li.data('contentDiv', $div);
});

// 不需要再去找那些 div 了;
// 可以直接从 list 中读取出来
var $firstLi = $('#myList li:first');
$firstLi.data('contentDiv').html('new content');

Javascript 相关文章推荐
javascript作用域和闭包使用详解
Apr 25 Javascript
JS获取单击按钮单元格所在行的信息
Jun 17 Javascript
javascript实现对表格元素进行排序操作
Nov 18 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
Feb 26 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 Javascript
JS温故而知新之变量提升和时间死区
Jan 27 Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
一小时迅速入门Mybatis之bind与多数据源支持 Java API
Sep 15 Javascript
CSS图片响应式 垂直水平居中
Aug 14 #Javascript
js实现选中复选框文字变色的方法
Aug 14 #Javascript
avalon js实现仿微博拖动图片排序
Aug 14 #Javascript
javascript实现显示和隐藏div方法汇总
Aug 14 #Javascript
freemarker判断对象是否为空的方法
Aug 13 #Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 #Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 #Javascript
You might like
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
Vue路由跳转问题记录详解
2017/06/15 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
Python搭建FTP服务器的方法示例
2018/01/19 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
python logging模块的使用
2020/09/07 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
自荐信格式的六要素
2013/09/21 职场文书
户外活动总结范文
2014/04/30 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
期中考试后的感想
2015/08/07 职场文书
python可视化大屏库big_screen示例详解
2021/11/23 Python
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android