1)学习JQ的工具函数:
*浏览器类型和版本检测:
$.brower.opera/.msie/.mozilla/.safari,是该浏览器则返回true否则false;
$.brower.version返回浏览器版本,其中mozilla firefox浏览器返回的是内核版本号而非浏览器版本号。
*浏览器特征检测:
①是否是W3C盒模型 $.support.boxModel,若返回true则为W3C盒模型。 W3C盒模型和IE盒模型的区别是W3C盒模型的width/height不包括padding和border的宽度,而IE盒模型就包括。
而文档类型DOCTYPE在检测盒模型时也很重要,须要添加。
②其他属性如cssFloat、hrefNormalized、htmlSerialize、leadingWhitespace、noCloneEvent、objectAll、opacity、scriptEval、style、tbody基本是在IE中为false。
*数组和对象的操作:
①遍历 $.each(obj,callback(param1,param2){}) ,不仅可以遍历DOM元素,也可遍历数组或对象。 其中obj可以是数组,param1是序号,param2是元素值;obj也可以是对象,param1是对象的属性名,param2是对象的属性值。
②筛选 $.grep(array,callback(element,index){},[invert]),其中callback返回布尔值,invert默认为false,表示筛选 使callback返回true的元素,即不取反。 返回值是筛选后的新数组,值是没变的。
③映射 $.map(array.callback(element,index){}),其中callback返回元素值,其作用是在筛选的基础上进行数据变更。
④搜索元素 $.inArray(value,array),搜索数组中是否存在某一个元素,若有,则返回索引值;否则返回-1。
⑤形成数组$.makeArray(obj),将一系列值或者对象组织成一个数组,就可以进一步用针对数组的函数对其加以操作。
⑥$.merge(firstArray,secondArray),混合两个数组。
⑦$.unique(array),将数组中的重复元素删除到只剩一个,注意这里的元素必须是DOM元素,而不能是字符串或者数字。
⑧$.extend([deep],target,obj1,[objN]),用于扩展JQuery自身函数和已有的Object对象以及开发插件。
*字符串操作:
JQ中唯一一个操作字符串的函数,$.trim(str),删除字符串str左右两边的空格符。
*状态检测:
$.isArray(obj)是否是数组,$.isFunction(obj)是否是函数,$.isEmptyObject(obj)是否是空对象,$.isPlainObject(obj)是否是一个原始对象,$.contains(container,contained)是否父节点包含子节点。
*URL参数序列化
$.serialize()函数的核心即是$.param(obj,[tranditional]),其中obj为Array<elements>,JQuery对象或者Object等待序列化对象,tranditional为布尔值,是否使用传统方式浅层序列化。 该函数返回序列化后的字符串。