了解jQuery技巧来提高你的代码质量

发表于:2011-1-17 10:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Lee\\\'s程序人生    来源:51Testing软件测试网采编

分享:

  12、学会使用自定义选择器

  jQuery允许我们在css选择器的基础上定义自定义选择器来让我们的代码更简洁:

  • $.expr[':'].mycustomselectorfunction(element, index, meta, stack){  
  •     // element- DOM元素  
  •     // index - 堆栈中当前遍历的索引值  
  •     // meta - 关于你的选择器的数据元  
  •     // stack - 用于遍历所有元素的堆栈  
  •    
  •     // 包含当前元素则返回true  
  •     // 不包含当前元素则返回false  
  • };  
  • // 自定义选择器的应用:  
  • $('.someClasses:test').doSomething();
  •   下面让我们来看看一个小例子,我们通过使用自定义选择器来锁定含有”rel”属性的元素集:

  • $.expr[':'].withRel = function(element){  
  •   var $this = $(element);  
  •   //仅返回rel属性不为空的元素  
  •   return ($this.attr('rel') != '');  
  • };  
  •    
  • $(document).ready(function(){  
  • //自定义选择器的使用很简单,它和其他选择器一样,返回一个元素包装集  
  • //你可以为他使用格式方法,比如下面这样修改它的css样式  
  •  $('a:withRel').css('background-color', 'green');  
  • });   
  • <ul> 
  •   <li> 
  •     <a href="#">without rel</a> 
  •   </li> 
  •   <li> 
  •     <a rel="somerel" href="#">with rel</a> 
  •   </li> 
  •   <li> 
  •     <a rel="" href="#">without rel</a> 
  •   </li> 
  •   <li> 
  •     <a rel="nofollow" href="#">a link with rel</a> 
  •   </li> 
  • </ul>
  •   13、预加载图片

      通常使用JavaScript来预加载图片是个相当不错的方法:

  • //定义预加载图片列表的函数(有参数)  
  • jQuery.preloadImages = function(){  
  •   //遍历图片  
  •   for(var i = 0; i<arguments.length; i++){  
  •     jQuery("<img>").attr("src", arguments[i]);  
  •    
  •   }  
  • }  
  • // 你可以这样使用预加载函数  
  • $.preloadImages("images/logo.png", "images/logo-face.png", "images/mission.png");
  •   14、将你的代码测试完好

      jQuery有一个名为QUnit单元测试框架。编写测试很容易,它能让您可以放心地修改您的代码,并确保它仍然按预期工作。下面是如何工作的:

  • //将测试分成若干模块.  
  • module("Module B");  
  • test("some other test", function() {  
  •   //指定多少个判断语句需要加入测试中.  
  •   expect(2);  
  •     
  •   equals( true, false, "failing test" );  
  •   equals( true, true, "passing test" );  
  • }); 
  • 相关链接:

    jQuery 常用方法总结

    55/5<12345
    2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号