博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【笔记】老程序员从头开始学JQuery的读书笔记02
阅读量:6264 次
发布时间:2019-06-22

本文共 3674 字,大约阅读时间需要 12 分钟。

  今天是哥们我学习JQuery的第二天,昨天发了篇《》,引来了一些朋友的围观。我想许多年轻的朋友,是因为想看看老程序员是什么样的,所以才进来想看个究竟,而不是我博客内容的本身会对其有什么帮助。也有些朋友帮我推荐了一些不错的教程,在此表示感谢。

 

1.一点题外话

 

  昨天有个朋友留言说“写了十多年了,还写代码?”,是的,我还在写,而且应该会一直写下去。可能写程序对于许多人只是一种工作形式,但对我来说可能早已成了一种生活方式,我无法想像没有代码可写的日子。虽然在公司已经不进行具体的代码编写工作,但是如果没有扎实的代码基础,不了解团队成员常用的技术,那么所设计出的方案可能会成为整个项目的噩梦。顺便做个广告:我和同事正在开发的是“”升级版本,虽然是一款收费软件,但仍得到了许多朋友的支持,内心真的非常激动与感激。有兴趣的朋友也可以试用一下,有什么想法和意见可以直接和我QQ或电话联系。

 

  言归正传,今天并没有阅读教程中新的内容,而是对着教程将案例重新来了遍。炒剩饭的感觉固然不好,不过剩饭都懒的炒,想必也很难直接将生米煮成熟饭。于是乎花了近一个小时重做书中案例,及4个自己想到的应用场景,因为从没有学习过JQuery,所以觉得还是有一些收获的。写将开来,希望对一些朋友能有所帮助。

 

2.第一个演示

 

  个人认为JQuery中的选择器功能是十分强大的,应该熟练掌握,所以动手做了4个演示,以强化对这方面知识的理解和掌握。先上一图:

  很简单,虽然Asp.Net中的DataGridView或Repeater控件也都可以定义,不过还是感觉JQuery的更方便一点。使用JQuery实现表格中的奇数行、偶数行不同的显示样式,基本上两行代码搞定,但是表格的标题也属于<tr>,所以可以灵活运用not标记来区分开来,代码两行如下:

1 $(document).ready(function() {            //当DOM文档结构加载完成时(不必等图像加载完毕)2   $('#Table01 tr:odd:not(.TableHeader)').addClass('OddRow'); //选择Table01中的除“标题行”外的所有奇数行,加上指定样式3   $('#Table01 tr:even:not(.TableHeader)').addClass('EvenRow'); //选择Table01中的除“标题行”外的所有偶数行,加上指定样式4 });

 

3.第二个演示

 

  如果表格中的“人员状态”为“休假”就用红色字体显示,虽然也很简单。不过如果用Asp.Net的Repeater控件还是有些麻烦的,我在以前的设计中,会将Employee实体类中加个属性如“ColorName”,其中只有一个Get方法。如:

1         public string ColorName 2         { 3             get 4             { 5                 //如果人员状态的名称为“休假” 6                 if (this.Status.StatusName = "休假") 7                 { 8                     return "Red"; 9                 }10                 return "Normal";11             }12         }

  然后前台再绑定这个“多余”的属性,有了JQuery这个问题似乎简单多了,不过也会带来一些新的问题,比如修改人员状态中关键字,假设增加一个“病假”需要用蓝色显示,那么要维护后台cs与前台js两处的代码了,不过也应该可以通过系统初始化重新动态生成js脚本来完成。回到原本的话题,我是用了contains("休假")关键字,来查找指定的td,代码如下:

1   $('#Table02 tr:odd:not(.TableHeader)').addClass('OddRow');    //选择Table02中的除“标题行”外的所有奇数行,加上指定样式2   $('#Table02 tr:even:not(.TableHeader)').addClass('EvenRow');  //选择Table02中的除“标题行”外的所有偶数行,加上指定样式3   $('#Table02 td:contains("休假")').addClass('RedText');         //选择Table02中人员状态为“休假”的列,指定单元格的字体颜色4   $('#Table02 td:contains("休假")').parent().addClass('RedRow'); //选择Table02中人员状态为“休假”的行,指定行背景色

 

4.第三个演示 

  如果表格中工资列中数据大于4000就用绿色显示其中的数值,查找了下JQuery中好像没有这样的表达式可以直接查询出元素(如果有朋友知道更好的方法请不吝赐教),所以写了段脚本如下:

1   $('#Table03 tr:odd:not(.TableHeader)').addClass('OddRow');      //选择Table03中的除“标题行”外的所有奇数行,加上指定样式2   $('#Table03 tr:even:not(.TableHeader)').addClass('EvenRow');    //选择Table03中的除“标题行”外的所有偶数行,加上指定样式3   $('#Table03 tr:not(.TableHeader)').each(function(){             //遍历除“标题行”外的所有行4        var money = parseInt($(this).children('td').eq(3).text()); //取得工资列的数据5      if(money>4000) {                                             //判断是否大于40006         $(this).children('td').eq(3).addClass('GreenText');  7      }8   });

 

5.第四个演示 

  与前面的演示基本相同,这次换成了根据时间大小来分色显示,实在是没找到这样的查询表达式,难道这种常用方法,JQuery不应该直接提供吗?汗!具体代码如下:

 

1   $('#Table04 tr:odd:not(.TableHeader)').addClass('OddRow');      //选择Table04中的除“标题行”外的所有奇数行,加上指定样式2   $('#Table04 tr:even:not(.TableHeader)').addClass('EvenRow');    //选择Table04中的除“标题行”外的所有偶数行,加上指定样式3   $('#Table04 tr:not(.TableHeader)').each(function(){             //遍历除“标题行”外的所有行4      var birthDate = new Date($(this).children('td').eq(4).text().replace(/-/g,"/"));  //取得出生日期列的数据5      var lineDate = new Date("1980-01-01".replace(/-/g,"/"));                          //定义80后的界限6      if(birthDate >lineDate) {                                                         //判断是否为80后7         $(this).children('td').eq(4).addClass('GreenText');  8      }9   });

 

6.收获及感悟

 

  今天的两个小时还是有所收获的,虽然没有阅读新的内容,不过掌握了诸如人员状态、工资、出生年月等不同数据类型,如何使用JQuery在前端实现不同样式的显示。考虑到之前一直采用为实体类定义个“多余”的属性,感觉使用JQuery也许会更简单直接一点,不过JQuery的使用也可能带来需多处维护业务代码的可能,所以还需细细思考出更好的方案,以便于今后更好的完成项目设计工作。

转载于:https://www.cnblogs.com/BudEasyCode/archive/2012/05/06/2486417.html

你可能感兴趣的文章
lock关键字理解
查看>>
20172303 2018-2019-1 《程序设计与数据结构》第3周学习总结
查看>>
[Javascript]史上最短的IE浏览器判断代码
查看>>
关于《大道至简》第五章的收获
查看>>
网卡驱动
查看>>
kinect sdk开发入门WPFdemo笔记
查看>>
Server.Transfer详细解释
查看>>
java单链表的增、删、查操作
查看>>
The working copy at 'xxx' is too old 错误解决
查看>>
jadclipse
查看>>
// 1.什么是JOSN?
查看>>
SQL语句详细汇总
查看>>
如何保护.net中的dll文件(防破解、反编译)
查看>>
Python 装饰器
查看>>
Docker 网络模式
查看>>
[POI2013]Usuwanka
查看>>
problem-solving-with-algorithms-and-data-structure-usingpython(使用python解决算法和数据结构) -- 算法分析...
查看>>
nodejs + CompoundJS 资源
查看>>
转:C#并口热敏小票打印机打印位图
查看>>
scau 17967 大师姐唱K的固有结界
查看>>