jQ随手笔记

随手记录一些小知识点

1.问题:js使用slideToggle如何获取当前隐藏或者开启状态

解决方法:

 $("#segmentGraph").slideToggle("slow",function(){
    if($(this).is(':hidden')){
        // close
    }else{
        // open
    }
});
2.js阻止事件冒泡和浏览器的默认行为

解决方法:

//阻止事件冒泡
function stopBubble(e) { 
    //如果提供了事件对象,则这是一个非IE浏览器 
    if ( e && e.stopPropagation ) 
        //因此它支持W3C的stopPropagation()方法 
        e.stopPropagation(); 
     else 
        //否则,我们需要使用IE的方式来取消事件冒泡 
        window.event.cancelBubble = true; 
} 

//阻止浏览器的默认行为 
function stopDefault( e ) { 
    if ( e && e.preventDefault ) 
        //阻止默认浏览器动作(W3C) 
        e.preventDefault(); 
    else 
        //IE中阻止函数器默认动作的方式
        window.event.returnValue = false; 
    return false; 
}
3.使用对象作为函数参数
  • 一个函数--函数接受几个参数,但是这几个参数都不是必填的,函数该怎么处理?
  • 如果一个函数,参数很多,又该怎么处理?
  • 如果函数参数有多个,需求突然改了,操作函数也要改,调用函数的时候参数也要一个一个修改?
  • 如果一个函数有很多的参数,看上去是不是不太美观,而且也不好找参数?
4.js中size()和length的区别

size()是方法:是jQuery提供的函数,只能在jQuery下使用。
length是属性: 定义在dom和javascript中,不使用jQuery也可以使用。

使用情况:
1.针对标签对象元素,比如数html页面有多少个段落元素

,那么此时的$("p").size() == $("p").length
2 .计算一个字符串的长度或者计算一个数组元素的个数
那么此时只能用length而不能用size()(size()在1.8之后就删除了)

5.DOM节点转jQuery对象,jQuery对象转DOM节点

DOM节点转jQuery对象

var v = document.getElementById("v"); //DOM对象
var $v = $(v); //jQuery 对象

jQuery对象转DOM节点
两种转换方式讲一个 jQuery 对象转换成 DOM 对象: [index] 和 .get(index);
(1) jQuery 对象是一个数据对象,可以通过 [index] 的方法,来得到相应的 DOM 对象。

var $v = $("#v"); //jQuery 对象
var v = $v[0]; //DOM 对象
alert(v.checked); //检测这个checkbox是否被选中

(2) jQuery 本身提供,通过.get(index) 方法得到相应的 DOM 对象

var $v = $("#v"); //jQuery 对象
var v = $v.get(0); //DOM对象 ( $v.get()[0] 也可以 )
alert(v.checked); //检测这个 checkbox 是否被选中

6.$.each()和$(selector).each()的区别

$.each(object, [callback])
参数详解:
object:需要例遍的对象或数组。
callback:每个成员/元素执行的回调函数。
如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。

$(selector).each(callback)
参数详解:
callback:对于每个匹配的元素所要执行的函数.
返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。
返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。

使用场景:
$().each 在dom处理上面用的较多
$.each通常处理数组或者对象
更多参考:关于JQuery中的$.each()与$().each的理解

你可能感兴趣的:(jQ随手笔记)