jquery 零碎知识点

1.hover方法

实例
当鼠标指针悬停在上面时,改变

元素的背景颜色

$("p").hover(function(){
    $("p").css("background-color","yellow");
},function(){
    $("p").css("background-color","pink");
});

定义和用法
hover() 方法规定当鼠标指针悬停在被选元素上时要运行的两个函数。
方法触发 [mouseenter]和 [mouseleave]事件。
注意: 如果只指定一个函数,则 mouseenter 和 mouseleave 都执行它。

语法
$(*selector*).hover(*inFunction,outFunction*)
调用
$( selector ).hover( handlerIn, handlerOut )


以上写法等同以下方式
$( selector ).mouseover( handlerIn ).mouseout( handlerOut );
注意:如果只规定了一个函数,则它将会在 mouseover 和 mouseout 事件上运行。

调用
$(selector).hover(handlerInOut)
等同于
$( selector).on( "mouseover mouseout", handlerInOut );

| 参数 | 描述 |
| inFunction | 必需。规定 mouseover 事件发生时运行的函数。 |
| outFunction | 可选。规定 mouseout 事件发生时运行的函数。 |

2.JQUERY的父,子,兄弟节点查找方法

1.查找父元素

jQuery.parent(expr)
例: $("span").parent() 
     $("span").parent(".class")

2.查找所有祖先元素,不限于父元素

jQuery.parents(expr)

3.返回所有直接子节点,不会返回子孙节点

jQuery.children(expr)

4.返回包含的的所有内容,包括节点和文本。
这个方法和children()的区别就在于,包括空白文本,也会被作为一个jQuery对象返回,children()则只会返回节点

jQuery.contents()

5.只返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prev()

6.返回所有之前的兄弟节点

jQuery.prevAll()

7.返回下一个兄弟节点,不是所有的兄弟节点

jQuery.next()

8.返回所有之后的兄弟节点

jQuery.nextAll()

9.返回兄弟姐妹节点,不分前后

jQuery.siblings()

10.查找某元素

jQuery.find(expr)
例:$("p"),find("span")
   从

元素开始找,等同于$("p span")

3.setInterval、setTimeout带参数的写法

1.采用字符串形式

setInterval("foo(id)",1000); 
//(缺陷)参数不能被周期性改变 

**2.匿名函数包装 (推荐) **

time = setInterval(function() 
{ 
foo (id); 
}, 1000); 
//可以周期性执行foo(id)这个函数,而且把变量id传递进去; 

**3.定义返回无参函数的函数 **

function foo(id) 
{ 
    alert(id); 
} 

function _foo(id) 
{ 
    return function() 
    { 
         foo(id); 
    } 
} 
window.setInterval(_foo(id),1000); 
//定义了一个函数_foo,用于接收一个参数,并返回一个不带参数的函数,
//在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。 
//在 window. setInterval函数中
//使用_foo(id)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。 

**4.修改setInterval **

function foo(id) 
{ 
    alert(id); 
} 

var _sto = setInterval; 
window.setInterval = function(callback,timeout,param) 
{ 
    var args = Array.prototype.slice.call(arguments,2); 
    var _cb = function() 
    { 
        callback.apply(null,args); 
    } 
    _sto(_cb,timeout); 
} 
window.setInterval(hello,3000,userName); 

4.js中对函数设置默认参数值的3种方法

方法1

function example(a,b){ 
  var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 
  var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2 
  return a+b; 
} 
//等同于:
function example(){ 
  var a = arguments[0] ? arguments[0] : 1;//设置第一个参数的默认值为1 
  var b = arguments[1] ? arguments[1] : 2;//设置第二个参数的默认值为2 
  return a+b; 
} 
//调用示例:
alert( example() ); //输出3 
alert( example(10) ); //输出12 
alert( example(10,20) ); //输出30 
alert( example(null,20) ); //输出20 

方法2

function example(name,age){ 
  name=name||'貂蝉'; 
  age=age||21; 
  alert('你好!我是'+name+',今年'+age+'岁。'); 
} 
//等同于:
function example(name,age){ 
  if(!name){name='貂蝉';} 
  if(!age){age=21;} 
  alert('你好!我是'+name+',今年'+age+'岁。'); 
} 
//调用示例:
example('王五');//输出:你好!我是王五,今年21岁。  
example('王五',30);//输出:你好!我是王五,今年30岁。  
example(null,30);//输出:你好!我是貂蝉,今年30岁。 

方法3:适合用于参数较多的情况

function example(setting){ 
  var defaultSetting={ 
    name:'小红', 
    age:'30', 
    sex:'女', 
    phone:'100866', 
    QQ:'100866', 
    birthday:'1949.10.01'
  }; 
  $.extend(defaultSetting,settings); 
  var message='姓名:'+defaultSetting.name 
  +',性别:'+defaultSetting.sex 
  +',年龄:'+defaultSetting.age 
  +',电话:'+defaultSetting.phone 
  +',QQ:'+defaultSetting.QQ 
  +',生日:'+defaultSetting.birthday 
  +'。'; 
  alert(message); 
} 
//调用示例
example({ 
  name:'小红', 
  sex:'女', 
  phone:'100866' 
}); 
//输出:姓名:小红,性别:女,年龄:30,电话:100866,QQ:100866。

你可能感兴趣的:(jquery 零碎知识点)