在项目中一直使用jquery,但是从来没有细致的研究过jQuery。最近买了本书准备系统的了解jQuery,再次就是是自己写下的笔记,希望对初学者有帮助,由于自己水平有限,理解不准确的地方,欢迎随时拍砖。
闲话少叙,直奔主题。第一弹现讲一下几个基础知识。
第一: $和jQuery 含义。
第二: window.onload = function(){};与$(funtcion(){});或者$(document).ready(function() {});区别。
第三: dom对象和jQuery对象的区别以及dom对象和就jQuery对象的相互转化。
第四: jQuery类库与其他类库冲突的解决办法。
第五: jQuery.is()方法。
首先说第一个,$和jQuery,我的理解$===jQuery 其实他们是一样的,只是$是jQuery的一种简写方式而已,可以相互互换。ex:$(function() {});和jQuery(function(){});完全一样。
第二点:window.onload = function(){}和jQuery区别,首先window.onload 是javascript的写法,这种写法在页面只能加载一次,如果一个页面出现多个window.onload 后面的会自动覆盖前面的,而$(function() {})(补充一点$(function() {})===$(document).ready(function() {}))就不会出现这种问题,页面出现多个也无所谓,每个都会加载出来;还有一点就是window.onload需要整个页面加载完才可以执行,这个加载完包括图片,文字,dom节点而$(function(){})只需要dom节点加载完就可以,所谓dom节点加载完就是以html标签形成的dom树加载完就可以,由此可以看出$(function(){})执行效率比window.onload 高。
第三点:dom对象和jquery对象的区别,jquery对象就是jquery特有的对象,被jquery包裹后的对象而dom对象就是原生的对象没有被jquery包裹的,使用javascript返回的。ex:document.getElementById("myId");这是一个dom对象
var _dom = document.getElementById("myid"); var _$ = $(_dom); _$就是一个jquery对象;由于jquery对象和dom对象获取属性不完全一样。ex: var _val = _dom.val;dom对象获取属性值; var _val = $(_dom).val();jquery获取对象方法。需要注意的是jquery对象只能使用jquery方法,dom对象只能使用dom方法。如果需要将dom对象和jquery对象相互转化可以如下操作: dom转化为jquery : $(_dom);在dom对象上包裹一次jQuery ;jquery转化dom:$(_dom).get(0)就可以。
第四点:jquery引入类库冲突的解决办法。
当引入的jquery类库在其他的类库后面:由于其他的类库已经占用了$符号,jQuery再使用$就会冲突。解决冲突的办法是:
jQuery.noConflict();//交出$的控制权
(function($) {//定义匿名函数使用形参$
$(function() {
});
})(jQuery);//传入jQuery
当引入的jquery在其他类库的前面就不会冲突,正常使用。
第五点:is()方法,is() 根据选择器、元素或 jQuery 对象来检测匹配元素集合,如果这些元素中至少有一个元素匹配给定的参数,则返回 true。
ex:$(function(){
var _$ = jQuery("#myid");//获取id为myid的对象
if(_$.is(":checked")){//判断这个对象是否有checked属性 返回值true or false
alert("this input is checkbox");
}
});