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 相关文章推荐
Jquery iframe内部出滚动条
Feb 11 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
微信分享调用jssdk实例
Jun 08 Javascript
使用重写url机制实现验证码换一张功能
Aug 01 Javascript
JavaScript中关于class的调用方法
Nov 28 Javascript
基于vue 实现token验证的实例代码
Dec 14 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
Jan 03 Javascript
使用Angular CLI从蓝本生成代码详解
Mar 24 Javascript
vue实现简单的MVVM框架
Aug 05 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
Element input树型下拉框的实现代码
Dec 21 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文件中是否含有bom的函数
2012/05/31 PHP
基于php下载文件的详解
2013/06/02 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
Vuex的初探与实战小结
2018/11/26 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
浅谈Python的异常处理
2016/06/19 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
Python通过文本和图片生成词云图
2020/05/21 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
用python绘制樱花树
2020/10/09 Python
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
EJB timer的种类
2014/10/28 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
党员学习十八大感想
2014/01/17 职场文书
婚宴邀请函
2015/01/30 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL