深入分析JQuery和JavaScript的异同

  ps:LZ觉得这个标题有点大了,超出了能力范围,不喜勿碰。目前只记录LZ能力范围内的,日后持续补充。

  一、JQuery对象和DOM对象的相互转化(《锋利的JQuery》)

  JQuery转化为DOM:

  1、var jq = $(‘#selector');   var dom = jq[index];

  2、var jq1 = $(‘#selector1');  var dom1 = jq1.get(index) 或者 var dom1 = jq1.get()[index];

  DOM转化为JQuery:

  假设cr是一个DOM对象,转为JQuery,jqcr = $(‘cr');

  二、JQuery的$(document).ready()和JavaScript的window.onload()的区别(《锋利的JQuery》)

  1、执行时机

  window.onload必须等待网页中所有资源(包括图片)加载完成后才能执行,而$(document).ready()在所有DOM结构绘制完毕后就执行,但是可能与DOM相关联的资源还没有加载完毕。

  2、编写个数

  一个文档中,window.onload只有是一个,而$(document).ready()可以有多个

  3、简化方法

  window.onload没有简写形式,$(document).ready()可以简写为$(function(){}).

  三、JQuery和JavaScript中访问属性名称的区别(《JQuery实战》)

  JQuery规范名称                             DOM规范

  cellspacing                                    cellSpacing

  class                                                className

  colspan                                          colSpan

  cssFloat                                         IE中是styleFloat,其他浏览器是cssFloat

  float                                               IE中是styleFloat,其他浏览器是cssFloat

  for                                                  htmlFor

  frameborder                                frameBorder

  maxLength                                  maxLength

  readonly                                      readOnly

  rowspan                                       rowSpan

  stylefloat                                      IE中是styleFloat,其他浏览器是cssFloat

  tabindex                                       tabIndex

  usemap                                         useMap

  四、冲突

  DOM理论上不会有冲突产生,JQuery防止冲突产生的两种解决方法:(《锋利的JQuery》)

  1、JQuery库在其他库之后导入

  调用JQuery。noConflict()方法将$控制权给其他库使用,或者自定义快捷方式,$j = JQuery.noConflict();

  2、JQuery库在其他库之前导入

  直接使用JQuery代替$工作,同时$可以作为其他库的快捷方式。