热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小白读《锋利的jQuery(第2版)》学习笔记第一章

第一章认识jQueryJavaScript和JavaScript库JavaScript:Netscape(网景)公司开发的一种脚本语言

第一章 认识jQuery


Javascript和Javascript库

Javascript:Netscape(网景)公司开发的一种脚本语言。

Javascript自身存在3个弊端:

  1. 复杂的文档对象模型(DOM)
  2. 不一致的浏览器实现
  3. 缺乏便捷的开发、调试工具

Ajax:一种新型的基于Javascript的Web技术。
(Asynchronous Javascript And XML,异步的Javascript和XML)

Javascript程序库:封装了很多预定义的对象和实用函数,简化Javascript的开发。

几种流行的Javascript程序库:

Prototype:最早成型的Javascript库之一,对Javascript的内置对象(例如String对象、Array对象等)做了大量的扩展。使用者可以在需要的时候随时将其中的几段代码抽出来放进自己的脚本里。
不足:从整体上对面向对象的编程思想把握得不是很到位,导致了其结构的松散。

Dojo:提供了很多其他Javascript库没有提供的功能。(例如离线存储的API,生成图标的组件、基于SVG/VML的矢量图形库和Comet支持等。
不足:学习曲线陡,文档不齐全,最严重的就是API不稳定,每次升级都可能导致已有的程序失效。

YUI:由Yahoo公司开发的一套完备的、扩展性良好的富交互网页程序工具集。
文档完备、代码规范。

Ext JS:简称Ext,原本是对YUI的一个拓展,主要用于创建前端用户界面。
不足:侧重于界面,本身比较臃肿。并非完全免费。

MooTools:一套轻量、简洁、模块化和面向对象的Javascript框架。

jQuery:轻量级的库,拥有强大的选择器、出色的DOM操作、可靠的事件处理、完善的兼容性和链式操作等功能。

jQuery已经逐渐从其他Javascript库中脱颖而出,成为Web开发人员的最佳选择。

加入jQuery

创建者:John Resig
创建时间:2006年1月
项目类型:开源项目
jQuery团队:核心库、UI、插件和jQuery Mobile等开发人员以及推广和网站设计、维护人员。
理念:写得少,做得多(write less, do more)
优势:

  1. 轻量级:采用UglifyJS压缩后,大小保持在30KB左右。
  2. 强大的选择器。CSS1到CSS3几乎所有的选择器;jQuery独创的高级而复杂的选择器;插件使其支持XPath选择器;开发者编写属于自己的选择器。
  3. 出色的DOM操作的封装。
  4. 可靠的事件处理机制。采用Dean Edwards编写的事件处理函数的精华。在预留退路(graceful degradation)、循序渐进以及非入侵式(Unobtrusive)编程思想不错。
  5. 完善的Ajax。所有的Ajax操作封装到一个函数$.ajax()里。
  6. 不污染顶级变量。jQuery只建立一个名为jQuery的对象,其所有的函数方法都在这个对象之下。
  7. 出色的浏览器兼容性。
  8. 链式操作方式。最有特色的地方。对发生在同一个jQuery对象上的一组动作,可以直接连写而无需重复获取对象。
  9. 隐式迭代。jQuery里的方法都被设计成自动操作对象的集合,而不是单独的对象。
  10. 行为层与结构层的分离。直接给元素添加事件。
  11. 丰富的插件支持
  12. 完善的文档
  13. 开源

jQuery代码的编写

下载地址:http:/jquery.com/
库类型:
jquery.js(开发版): 约229KB ; 完整无压缩版本,主要用于测试、学习和开发。
jquery.min.js(生产版): 约31KB ; 经过工具压缩或经过服务器开启Gzip压缩,主要应用于产品和项目。

无需安装,只需在页面html文件中引入该库文件的位置即可。







$与jQuery等价:


在这里插入图片描述
window.onload:
必须等待网页中所有的内容加载完毕后(包括图片)才能执行。
不能同时编写多个。若有多个,取最后那个执行。
无简化写法。

$(document).ready():
网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完。
能同时编写多个,多个都会执行。
$(document).ready(function(){
······
});
可以简写为:
$(function(){
······
});

jQuery代码风格

一个导航栏的HTML代码:








需求:单击不同的商品名称链接,显示相应的内容,同时高亮显示当前选择的商品。

jQuery代码:


jQuery规范格式:

  1. 对于同一个对象不超过3个操作的,可以直接写一行。
  2. 对于同一个对象的较多操作,建议每行写一个操作。
  3. 对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当地缩进。

由于jQuery有时候很复杂的问题用一行选择器就可以轻松解决。所以最后写上必要的注释。

jQuery对象和DOM对象

DOM(Document Object Model,文档对象模型),每一份DOM都可以表示成一棵树。
(Javascript已经学过,不赘诉。)
可以通过getElementsByTagName或者getElementById来获取元素节点。

jQuery对象:通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的。

在jQuery对象中无法使用DOM对象的任何方法。DOM对象也不能使用jQuery里的方法。

jQuery对象和DOM对象的相互转换

如果获取的是jQuery对象,那么在变量前面加上$。

var $variable = jQuery对象

如果获取的是DOM对象,不加$

var variable = DOM对象

jQuery对象转成DOM对象

jQuery提供了两种方法将一个jQuery对象转换成DOM对象,即[index]和get(index)。

(1)jQuery对象是一个类似数组的对象——[index]

var $cr = $("#cr"); //jQuery对象
var cr = $cr[0]; //DOM对象
alert(cr.checked) //检测这个checkbox是否被选中了

(2)jQuery本身提供的,提供get(index)方法得到相应的DOM对象。

var $cr = $("#cr"); //jQuery对象
var cr = $cr.get(0); //DOM对象
alert(cr.checked) //检测这个checkbox是否被选中了

DOM对象转成jQuery对象

对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。
方式为$(DOM对象)

var cr = document.getElementById("cr"); //DOM对象
var $cr = $(cr); //jQuery对象

一个实例

采用DOM方式:


用户注册(基本信息)
用户名
验证码   点击获取验证码
性别
论坛密码
请再输入一遍密码
E-mail
请回答注册问题:1+1=?
你的回答是:
为避免机器注册请提交
您的时区和时间
高级选项显示高级用户设置选项


在这里插入图片描述
jQuery方式:



解决jQuery和其他库的冲突

在jQuery库中,几乎所有插件都被限制在它的命名空间里。通常,全局对象都被很好地存储在jQuery命名空间里,因此当把jQuery和其他Javascript库一起使用时,不会引起冲突。

  1. jQuery库在其他库之后导入:
    在其他库和jQuery库都被加载完毕后,可以在任何时候调用jQuery.onConflict()函数来将变量$的控制权移交给其他Javascript库。












Test-prototype(将被隐藏)


Test-jQuery(将被绑定单击事件)




自定义一个快捷方式






Test-prototype(将被隐藏)


Test-jQuery(将被绑定单击事件)





jQuery开发工具和插件


  1. Dreamweaver:建立Web站点和应用程序的专业工具。
  2. Aptana:一个功能强大、开源和专注于Javascript的Ajax开发IDE。(占内存多)
  3. jQueryWTP和Spket插件:Eclipse支持jQuery自动提示代码功能。
  4. Visual Studio 2008
  5. 其他工具:EditPlus、EmEditor和VIM等等。

推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Webpack 初探:Import 和 Require 的使用
    本文介绍了 Webpack 中 Import 和 Require 的基本概念和使用方法,帮助读者更好地理解和应用模块化开发。 ... [详细]
  • 本文详细介绍了在编写jQuery插件时需要注意的关键要点,包括模块化支持、命名规范和性能优化等内容,旨在帮助开发者提高插件的质量和可维护性。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
author-avatar
手机用户2502917141
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有