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 相关文章推荐
学习ExtJS accordion布局
Oct 08 Javascript
把input初始值不写value的具体实现方法
Jul 04 Javascript
JQUERY简单按钮轮换选中效果实现方法
May 07 Javascript
jQuery构造函数init参数分析
May 13 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
Bootstrap每天必学之按钮(一)
Nov 24 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
vue2.0 datepicker使用方法
Feb 04 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
Sep 23 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
一个好用的分页函数
2006/11/16 PHP
php中smarty区域循环的方法
2015/06/11 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python 类的继承实例详解
2017/03/25 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python简单实现操作Mysql数据库
2018/01/29 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
python Gabor滤波器讲解
2020/10/26 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
测绘工程系学生的自我评价
2013/11/30 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
初中英语教学反思
2014/01/25 职场文书
团队经理竞聘书
2014/03/31 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
开展创先争优活动总结
2014/08/28 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书