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 相关文章推荐
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
Jquery插件之打造自定义的select标签
Nov 30 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
jquery中常用的函数和属性详细解析
Mar 07 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
javascript中checkbox使用方法简单实例演示
Nov 17 Javascript
基于JS实现导航条flash导航条
Jun 17 Javascript
轻松实现js弹框显示选项
Sep 13 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
jQuery常用选择器详解
Jul 17 jQuery
vue引入swiper插件的使用实例
Jul 19 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实现jQuery扩展函数
2009/10/30 PHP
PHP数组实例总结与说明
2011/08/23 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
python字典与json转换的方法总结
2020/12/28 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
人资专员岗位职责
2014/04/04 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
公司年底活动方案
2014/08/17 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
Java界面编程实现界面跳转
2022/06/16 Java/Android