今天开始学习菜鸟的JQuery,这本书在一前看过一遍了,但是由于虽然看了,但是将近一年在工作中基本上没有用上,很是悲催,菜鸟想,用一到两个星期时间把这本书看一遍吧。就像菜鸟前面的jsdom一样,菜鸟写博客不是为了让人家从中学到什么,菜鸟目前还没那样的水平,菜鸟只是想通过在写博客的途中能够留下菜鸟学习的痕迹,仅此而已,因此菜鸟决定不将随笔放入首页,以免浪费大家的时间,但是菜鸟并不会因此而比较随意,复制粘贴,菜鸟坚持自己敲每一行代码,就像jsdom那样。

废话不多说,Come on!

先来一个简单的Jquery代码

  1. <html>
  2. <head>
  3. <script src="../jquery-1.3.1.js" type="text/javascript"></script>
  4. <script type="text/javascript">
  5. $(document).ready(function(){
  6. alert("Hello World!");
  7. });
  8. </script>
  9. </head>
  10. <body>
  11. <body>
  12. </html>

这里面有关于jquery $(document).ready() 与window.onload的区别,博园里也有,我就不详细的写下来了。

  • jQuery代码风格

链式风格

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>1-5-1</title>
  6. <style type="text/css">
  7. #menu {
  8. width:300px;
  9. }
  10. .has_children{
  11. background : #555;
  12. color :#fff;
  13. cursor:pointer;
  14. }
  15. .highlight{
  16. color : #fff;
  17. background : green;
  18. }
  19. div{
  20. padding:0;
  21. }
  22. div a{
  23. background : #888;
  24. display : none;
  25. float:left;
  26. width:300px;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div id="menu">
  32. <div class="has_children">
  33. <span>第1章-认识jQuery</span>
  34. <a>1.1-JavaScript和JavaScript库</a>
  35. <a>1.2-加入jQuery</a>
  36. <a>1.3-编写简单jQuery代码</a>
  37. <a>1.4-jQuery对象和DOM对象</a>
  38. <a>1.5-解决jQuery和其它库的冲突</a>
  39. <a>1.6-jQuery开发工具和插件</a>
  40. <a>1.7-小结</a>
  41. </div>
  42. <div class="has_children">
  43. <span>第2章-jQuery选择器</span>
  44. <a>2.1-jQuery选择器是什么</a>
  45. <a>2.2-jQuery选择器的优势</a>
  46. <a>2.3-jQuery选择器</a>
  47. <a>2.4-应用jQuery改写示例</a>
  48. <a>2.5-选择器中的一些注意事项</a>
  49. <a>2.6-案例研究——类似淘宝网品牌列表的效果</a>
  50. <a>2.7-还有其它选择器么?</a>
  51. <a>2.8-小结</a>
  52. </div>
  53. <div class="has_children">
  54. <span>第3章-jQuery中的DOM操作</span>
  55. <a>3.1-DOM操作的分类</a>
  56. <a>3.2-jQuery中的DOM操作</a>
  57. <a>3.3-案例研究——某网站超链接和图片提示效果</a>
  58. <a>3.4-小结</a>
  59. </div>
  60. </div>
  61. </body>
  62. </html>

然后我们看一下jQuery来实现这个导航栏效果。

  1. $(".has_children").click(function(){
  2. $(this).addClass("highlight").children("a").show().end().siblings().
  3. removeClass("highlight").children("a").hide()
  4. });

这就是传说中的链式风格,我这个不知道和c#里面的扩展方法有什么相似之处。。这部分代码对于了解jQuery的人来说可能很简单,但是我想要是几十行或者上百行类似的代码,那看起来肯定和头痛,因此学会编写可读的代码比较重要:

  1. $(".has_children").click(function(){
  2. $(this).addClass("highlight")//将但钱元素添加hightlight类
  3. .children("a").show().end()//将子节点的<a>元素显示出来并重新定位到上次操作的元素
  4. .siblings().removeClass("highlight")//获取元素的兄弟节点,并去掉他们的highlight类
  5. .children("a").hide()、、将兄弟元素下的<a>元素隐藏
  6. });

要领总结:对于同一个对象不超过3个操作,可以直接写成一行,较多的建议每行写一个操作。对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当地缩进。同时为代码添加相应的注释

DOM可以表示成一棵树,jQuery对象局势通过jQuer包装DOM对象后产生的对象

  1. $("#foo").html()//jQuery
  2. //等同于
  3. document.getElementById("foo").innerHTML;//dom

jQuery对象用无法使用DOM方法。

jQuery对象和DOM对象互相转换

jQuery对象和DOM对象互换jQuery对象前加$

  1. var $variable=jQuery对象;
  2. var variabl=DOM对象;

jQuery对象转换成DOM对象。

1.[index],jQuery对象一个数组对象

  1. var #cr=$("#cr");//jQuery对象
  2. var cr=$cr[0];//DOM对象
  3. alert(cr.checked)

get[index]

  1. var #cr=$("#cr");//jQuery对象
  2. var cr=$cr.get(0);//DOM对象
  3. alert(cr.checked)

DOM对象转换正jQuery对象

  1. var cr=document.getElementById("cr");//DOM对象
  2. var #cr=$(cr);

实例,同意协议的

  1. <html>
  2. <head>
  3. <script src="../jquery-1.3.1.js" type="text/javascript"></script>
  4. <script type="text/javascript">
  5. $(document).ready(function(){
  6. var $cr=$("#cr");//我在这儿少了#找了半天
  7. var cr=$cr[0];
  8. $cr.click(function(){
  9. if (cr.checked)
  10. {
  11. alert("感谢你的支持!你可以继续操作");
  12. }
  13. })
  14. })
  15.  
  16. </script>
  17. </head>
  18. <body>
  19. <input type="checkbox" id = "cr"/>
  20. <label for ="cr">我已经阅读了上面制度</label>
  21. </body>
  22. </html>

用jQuery实现

  1. $(document).ready(function(){
  2. var $cr=$("#cr");
  3. $cr.click(function(){
  4. if (¥cr.is(":checked"))//jQuery方法判断
  5. {
  6. alert("感谢你的支持!你可以继续操作");
  7. }
  8. })
  9. })

好这章就记录到这儿。

锋利的JQuery-认识Jquery的更多相关文章

  1. 01-老马jQuery教程-jQuery入口函数及选择器

    前言 这套jQuery教程是老马专门为寒门子弟而录制,希望大家看到后能转发给更多的寒门子弟.视频都是免费,请参考课程地址:https://chuanke.baidu.com/s5508922.html ...

  2. jQuery初探 jQuery选取和操纵元素的特点

    jQuery初探 jQuery选取和操纵元素的特点 JavaScript选取元素 先来看看不用jQuery的时候我们是怎么处理元素选取的. JavaScript选取元素的时候,可以根据id获取元素,当 ...

  3. jQuery实例——jQuery实现联动下拉列表查询框--转http://www.cnblogs.com/picaso/archive/2012/04/08/2437442.html#undefined

    jQuery实例--jQuery实现联动下拉列表查询框   在查询与列表显示的时候经常用到联动列表显示,比如一级选项是国家,二级选项是省,三级是市,这样的联动是联系的实时导出的,比如你不可能选择了四川 ...

  4. jQuery - 2.jQuery选择器

    1.id 选择器 2.标签选择器 3.类选择器 4.复合选择器 5.层次选择器 JQuery的迭代   JQuery选择器 JQuery选择器用于查找满足条件的元素,比如可以用$("#控件I ...

  5. jQuery-认识JQuery,jQuery选择器

    认识JQuery: 1.window.onload与$(document).ready()的区别 window.onload $(document).ready() 执行时机 必须等待网页中的所有内容 ...

  6. jQuery extend() & jQuery.fn.extend(),插件编写

    资料来源:网上资料整理并自行改编测试.复制以下代码并依赖jquery.js,jquery.validate.js即可执行.有误之处,请@我啊,敬请赐教. <!DOCTYPE html PUBLI ...

  7. jquery.validate+jquery.form提交的三种方式

    原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...

  8. webpack+react+jquery和jquery插件

    要引入jquery插件 全局引入jquery plugins : [new webpack.ProvidePlugin({ $: 'jquery', jQuery:'jquery' "win ...

  9. 《jQuery、jQuery UI及jQuery Mobile技巧与示例》勘误收集

    此书由程学彬 (http://weibo.com/ironbin)和我合译完成,此篇博客作为勘误收集而用,若译文有误或者有任何疑问,欢迎留下评论,或者给我发邮件(地址:gzooler@gmail.co ...

  10. 从零开始学习jQuery (九) jQuery工具函数

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最常见的就 ...

随机推荐

  1. bootstrap-validator使用

    bootstrap-validator是一款与bootstrap相结合的表单前端验证模块,官方网址:http://1000hz.github.io/bootstrap-validator/ 下面内容大 ...

  2. Kakfa揭秘 Day7 Producer源码解密

    Kakfa揭秘 Day7 Producer源码解密 今天我们来研究下Producer.Producer的主要作用就是向Kafka的brokers发送数据.从思考角度,为了简化思考过程,可以简化为一个单 ...

  3. Android UI学习1:控件和基本事件的响应

    在任何一个 GUI 系统中,控制界面上的控件(通常称为控件)都是一个基本的内容.对于 Android 应用程序,控件称为 View. 在 Android 中,在处理 UI 中的各种元素的时候,两个程序 ...

  4. Beaglebone Back学习五(PWM测试)

    PWM测试 参考链接 1 Enable PWM on BeagleBone with Device Tree overlays 2Using PWM on the Beaglebone Black 3 ...

  5. AJAX 基础知识

    1.AJAX 是一种用于创建快速动态网页的技术.而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不 ...

  6. WinForm调试输出数据

    在调试Winfrom时想知道其中的数据输出 1.单击运行按钮 2.选择调试->窗口->输出 3.单击Winform中要执行的按钮  在输出栏中显示输出数据 4.Ctrl  K  S  能够 ...

  7. centos apache 隐藏和伪装 版本信息

    1.隐藏Apache版本信息 测试默认 apache 的状态信息[root@1314it conf]# curl -Is localhostHTTP/1.1 200 OKDate: Tue, 16 N ...

  8. Samba出现“您可能没有权限使用网络资源”解决方法

    我最近在Centos6.3上搭建Samba系统,按照配置都已经配置好了,当就是没法在win7下访问,老是弹出以下弹出框: 后来我在网上找资料发现有SELinux这么个东西,然后我就按照配置该了一下就成 ...

  9. c++ 容器类

    #include <iostream> #include <vector> #include <list> #include <map> using n ...

  10. PAT-乙级-1017. A除以B (20)

    1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过 ...