2012-09-19 146 views
2

有没有办法不必写这个'两次' 请看下面哪里#start_date和#end_date函数完全一样。jquery代码清理

<script type="text/javascript"> 

    jQuery(function($){ 

     $("#start_date").datepicker({ 
      showButtonPanel: true, 
      minDate: 1, 
      dateFormat: 'dd/mm/yy' 
     }); 

     $("#end_date").datepicker({ 
      showButtonPanel: true, 
      minDate: 1, 
      dateFormat: 'dd/mm/yy' 
     });  

    }); 

</script> 
+0

你能更改HTML代码吗?如果是这样,只需使用一个类而不是一个id。 –

回答

6
jQuery(function($){ 

    $("#start_date, #end_date").datepicker({ 
     showButtonPanel: true, 
     minDate: 1, 
     dateFormat: 'dd/mm/yy' 
    }); 

}); 

http://jsfiddle.net/LWQCE/

或者使用一个类:

(function($){ 

    $(".myDatePickers").datepicker({ 
     showButtonPanel: true, 
     minDate: 1, 
     dateFormat: 'dd/mm/yy' 
    }); 

}); 
+0

谢谢。这实际上非常简单 –

0

您可以用逗号jQuery中选择多个ID。

<script type="text/javascript"> 

    jQuery(function($){ 

     $("#start_date, #end_date").datepicker({ 
      showButtonPanel: true, 
      minDate: 1, 
      dateFormat: 'dd/mm/yy' 
     }); 

    }); 

</script> 
-2

我不担心这种少量的代码重复。另外,也许你在一个星期内决定改变其中一个属性,那么你会很高兴不要重构太多。

尤其是在这个非常简单(而且很容易阅读)的代码示例中,我试图应用Rule of Three重构经验法则,它规定“代码可以被复制一次,但是当使用相同的代码三次,它应该被提炼成一个新的程序“。

+1

我完全同意你! –

+0

你有没有听说过[DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)(不要重复自己)? – jfriend00