随手记录一些小知识点
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></p>
,那么此时的$("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的理解