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实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
整理关于Bootstrap导航的慕课笔记
Mar 29 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
详解10分钟学会vue滚动行为
Sep 21 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php minixml详解
2008/07/19 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
Python读写zip压缩文件的方法
2018/08/29 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
python画微信表情符的实例代码
2019/10/09 Python
Python中base64与xml取值结合问题
2019/12/22 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
人事助理岗位职责
2013/11/18 职场文书
大学生自荐书范文
2013/12/10 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
教师工作表现自我评价
2015/03/05 职场文书
担保贷款承诺书
2015/04/30 职场文书
小学三年级作文之写景
2019/11/05 职场文书
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS