锋利的JS解读——认识JQuery(一)

一、jQuery的发展 随着javascript的不断发展,延伸出了多种JS程序库,当前比较流行的js库有:1)Prototype  成型较早,从整体上对面向对象的编程思想把握的不是很到位。 2)Dojo  学习曲线陡,文档不齐全,最严重的的是APE不稳定,每次升级都可能导致已有程序失效。 3)YUI  Yahoo公司出品,比较完善,编写规范。 4)Ext JS  原本是对YUI的扩展,主要用于构建前端用户界面,后期发展可以用来开发富有华丽外观的富客户端应用,商业用途并不免费。  5) MooTools  轻量,简洁,模块化和面向对象的JS库,非常不错。6)jQuery  同样是轻量级的库,拥有强大的选择器,出色的DOM操作,可靠的事件处理,完善的兼容性及链式操作等功能,也是我们即将学习的重点。

二、jQuery 的优势:写的少,做的多。jQuery独特的选择器,链式操作,事件处理机制和封装完善的Ajax都是其他JS库望尘莫及的。

1)轻量级 目前使用UglifyJS进行压缩后只有30KB左右。2)强大的选择器  允许使用CSS1-3几乎所有的选择器,以及jQuery独创的高级而复杂的选择器。  3)出色的DOM操作的封装。 4)可靠的事件处理机制 5)完善的Ajax jQuery将所有的Ajax操作封装到一个函数$.ajax()里面,无需关心复杂的浏览器兼容性和对象的创建与使用。 6)不污染顶级变量  7)  出色的浏览器兼容性。 8)链式操作方式 9)隐式迭代 10)行为层和结构层的分离 11)丰富的插件支持。12)完善的文档 13)开源

三、jQuery代码的编写。

1)进入官方网站获取最新的jQuery版本。 http://jquery.com ,右键保存链接得到jquery库。  jquery 库分为两种:生产版  jquery.min.js和开发版jquery.js.

2)环境配置 jQuery不需要安装,使用的时候直接在html文档中引入该库文件的位置即可。eg:  <script src="../scripts/jquery.js"  type="text/javascript"></script>

3)编写第一个jquery 代码  $ 就是jQuery 的简写 。 $(document).ready(functiong(){ })  这段代码类似于传统的JS的  window.onload=function(){  }, 区别:1》window必须在全部加载之后才可以执行, $(document) 则是网页中所有的DOM结构绘制完成后就可以执行。2》window.onload=funciton(){} 不能同时编写多个,只能输出最后一个,$(function).ready(funcitong(){  })能够同时编写多个。输出结果是多次输出。3》 window.onload=funciton(){}没有简写的形式,$(document).ready(function(){ })则可以简写成 $(funciton(){  })

4)链式操作风格

eg $(" .level1>a").click(function(){

$(this).addClass("current").next().show().parent().siblings().children("a").removeClass("current").next().hide();

return false;

})

翻译: 当鼠标单击到level下面的a元素时,给其添加current的class,然后将其紧邻后面的元素显示出来,同时将他的父辈的同辈元素内部的子元素a都去掉一个current的class,然后将紧邻它们后面的元素都隐藏。 即一键完成了导航栏的功能。

代码风格推荐 :

$(".level1>a").click(function(){

$(this).addClass("current")                                                      //给当前元素增加current样式

.next().show()                                                                          //下一个元素显示

.parent().siblings().children("a").removeClass("current")        //父元素的同辈元素的子元素a移除 current样式

.next().hide();                                                                          //它们的下一个元素隐藏

return false;

})

四、jQurey对象和DOM对象

1)DOM对象即文本对象模型 document object model  构建网页的DOM树,子节点都DOM元素节点。可以通过js中的getElementsByTagName 和getElementById 来获取元素节点,这样得到的DOM元素就是DOM对象。

2)jQuery 对象 就是通过jQuery包装DOM对象后产生的对象。是独有的,一个对象如果是jQuery对象,那么就可以使用jQuery的方法。

eg:  $("#fool").html()    等同于 document.getElementById("fool").innerHTML  . 在jQuery对象里面无法使用DOM对象的任何方法。同样DOM对象也不可以使用jQuery的方法。

3)DOM对象和jQuery对象的相互转换。

在相互转化之前需要预定好定义变量的风格,如果获取的对象是jquery对象,则在变量前面加$   var $varible=jQuery 对象    var varible=DOM对象。

1》jQuery对象转换成DOM对象。 利用  [index] 或者 get(index)   eg:var $cr= $("#cr")  var cr=$cr[0]  或者 var cr=$cr.get(0)

2》DOM对象转化成jQuery 对象,先将DOM对象进行包装,然后获取jQuery对象 eg: var cr=document.getElementById(“cr”)   var $cr= $(cr)   即 $(DOM对象)

五、 解决jQuery和其他库的冲突的办法 

1)jQuery的库在其他库后面进行导入,且可以在任何时候使用 jQuery.noConflict() 函数来将变量$ 的控制权移交给其他的js库。

2)在其他库之后进行导入,可以直接使用 “jQuery” 做jQuery的工作,其他库的快捷方式则为$() ,无需调用jQuery.noConflict()函数。

原文地址:https://www.cnblogs.com/hanggedege/p/11614689.html

时间: 2024-10-12 08:00:44

锋利的JS解读——认识JQuery(一)的相关文章

锋利的js前端分页之jQuery

原文:锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比较简单. 1 /** 2 * pageSize, 每页显示数 3 * pageIndex, 当前页数 4 * pageCount 总页数 5 * url 连接地址 6 * pager(10, 1, 5, 'Index')使用方法示例 7 */ 8 function pager(pageSize

JQuery之JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案

JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案 JQuery的版本 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery的版本</title> <

DOM对象和js对象以及jQuery对象的区别

一.DOM对象 文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口. DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系. 通过DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性.可以对其中的内容进行修改和删除,同时也可以创建新的元素. HTML DOM 独立于平台和编程语言.它可被任何编程语言诸如 Java.JavaScript 和 VBScript 使用. DOM对象,即是我们用

Js脚本之jQuery学习笔记(1)

Js脚本之jQuery学习笔记(1) 一.javascript基础 单行注释 多行注释 /* */ 数据类型 数值型 字符串型 布尔型 空值 未定义值 转义字符 函数定义:1234567891011121314<head><script language="javascript"function test(m){var xixi="嘻嘻"alert("这是javascript")document.write(xixi + m)}

图片轮播(左右切换)--js原生和jquery实现

图片轮播(左右切换)--js原生和jquery实现 左右切换的做法基本步骤跟 上一篇文章  淡入淡出 类似,只不过修改了一些特定的部分 (1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外围部分(其实也就是最外边的整体wrapper) 2.接着就是你设置图片轮播的地方(也就是一个banner吧) 3.然后是一个图片组(可以用新的div 也可以直接使用 ul-->li形式) 4.然后是图片两端的左箭头和右箭头5.然后是一个透明背景层,放在图片底部 6.然后是一个图片描述info层,放在

JS扩展 或 Jquery的扩展写法

<script>//JS扩展String函数test,其它类推String.prototype.test = function(s){ alert(this+s);}var str = 'hello';str.test('world');//helloworld //JQ扩展(function($){ $.fn.test = function(op){ var defaults = {a:'no'} var setings = $.extend(defaults,op); alert(seti

AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法

AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一个可用的模块化 JavaScript 的解决方案. AMD 模块格式本身是一个关于如何定义模块的提案,在这种定义下模块和依赖项都能够异步地进行加载.它有很多独特的优势,包括天生的异步及高度灵活等特性,这些特性能够解除常见的代码与模块标识间的那种紧密耦合.目前它已经被很多项目所接纳,包括jQuery(1.7). RequireJS RequireJS是一个工具库,主

JS获取QueryString(Jquery)

QueryString = { data: {}, Initial: function() { var aPairs, aTmp; var queryString = new String(window.location.search); queryString = queryString.substr(1, queryString.length); //remove "?" aPairs = queryString.split("&"); for (var

在Vue.js中引入jQuery的方法:

步骤一:首先先下载jQuery包 cnpm i jquery -D // 下载 jQuery包 步骤二:在webpack.config.js中配置jquery插件 步骤三:在要使用jQuery的组件页面引入jQuery import $ from 'jquery' //引入jquery