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编写COM组件的步骤
Mar 17 Javascript
js 多浏览器分别判断代码
Apr 01 Javascript
jquery中交替点击事件toggle方法的使用示例
Dec 08 Javascript
使用VS开发 Node.js指南
Jan 06 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
jQuery移动端图片上传组件
Jun 12 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
详解Vue单元测试case写法
May 24 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
Oct 31 Javascript
JavaScript手写数组的常用函数总结
Nov 22 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个人网站架设连环讲(一)
2006/10/09 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
web打印小结
2017/01/11 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python底层封装实现方法详解
2020/01/22 Python
python和c语言哪个更适合初学者
2020/06/22 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
C#实现启动一个进程
2016/10/01 面试题
绘画专业自荐信范文
2014/02/23 职场文书
岗位安全生产责任书
2014/07/28 职场文书
我爱我班主题班会
2015/08/13 职场文书
情况说明书怎么写
2015/10/08 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
基于Redission的分布式锁实战
2022/08/14 Redis