1、$.fn.extend()
$.fn.extend() 函数为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法)。
jQuery.fn是jQuery的原型对象,其extend()方法用于为jQuery的原型添加新的属性和方法。这些方法可以在jQuery实例对象上调用。
语法 $.fn.extend( object )
例子
<label><input type="checkbox" name="foo"> Foo</label>
<label><input type="checkbox" name="bar"> Bar</label>
<script>
$(function () {
$.fn.extend({
check: function() {
return this.each(function() {
this.checked = true;
});
},
uncheck: function() {
return this.each(function() {
this.checked = false;
});
}
});
// 使用新创建的.check() 方法
$( "input[type='checkbox']" ).check();
})
</script>
//当时看到这个例子的时候,纠结了很久关于return。
因为不使用return 也能实现这个方法,但写return的目的是什么?
后来才知道是因为jQuery方法一般都是可以链式的写法,
而jquery对象.each(function(){})返回的是jQuery对象。
2、get()
get() 通过检索匹配jQuery对象得到对应的DOM元素。和eq()的用法相同,唯一的区别是eq返回的是一个jQuery对象,get返回的是一个DOM对象
3、call() 工作中唯一一次用到call()的场景 记录一下
在写富盈项目的时候,有一个登录方法,刚开始需求是不用登录也可以浏览网页,如果登录的话点击登录按钮执行登录方法,后来需求改变,如果没有登录不能浏览网页,打开网页自动跳到登录页面,调用的方法是同一个登录方法,但是稍微有点区别,所以我们只需要判断这个登录方法是被谁调用的,然后再方法里加下判断就行了,后来就用到了call()如下
function login(){
if (this && this.id == 'login') {
******
} else {
*******
}
***********
}
var getlogin = $('#login').get(0);
login.call(getlogin);