<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title> 扩展插件</title>
  <style type="text/css">
    * {
      margin: 0px;
    }

    .div1 {
      position: absolute;
      width: 100px;
      height: 100px;
      top: 50px;
      left: 10px;
      background: red;
    }
  </style>
</head>
<body>
<input type="checkbox" name="items" value="足球"/>足球
<input type="checkbox" name="items" value="篮球"/>篮球
<input type="checkbox" name="items" value="羽毛球"/>羽毛球
<input type="checkbox" name="items" value="乒乓球"/>乒乓球
<br/>
<input type="button" id="checkedAllBtn" value="全 选"/>
<input type="button" id="checkedNoBtn" value="全不选"/>
<input type="button" id="reverseCheckedBtn" value="反选"/>

<!--
1. 扩展jQuery的工具方法
  $.extend(object)
2. 扩展jQuery对象的方法
  $.fn.extend(object)
-->
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script src="js/my_jQuery_plugin.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 给 $ 添加4个工具方法:
     * min(a, b) : 返回较小的值
     * max(c, d) : 返回较大的值
     * leftTrim() : 去掉字符串左边的空格
     * rightTrim() : 去掉字符串右边的空格
   2. 给jQuery对象 添加3个功能方法:
     * checkAll() : 全选
     * unCheckAll() : 全不选
     * reverseCheck() : 全反选
   */
//  1. 给 $ 添加4个工具方法:
//  * min(a, b) : 返回较小的值 
//  * max(c, d) : 返回较大的值 
//  * leftTrim() : 去掉字符串左边的空格 
//  * rightTrim() : 去掉字符串右边的空格 
//  2. 给jQuery对象 添加3个功能方法:
//      * checkAll() : 全选  
//  * unCheckAll() : 全不选 
//  * reverseCheck() : 全反选 


console.log($.min(3,9));

console.log($.max(3,9));

var str = ' at eric   ';
console.log('---'+$.leftTrim(str));
console.log('---'+$.rightTrim(str)+'---');

$('#checkedAllBtn').click(function(){
  // this 指向当前调用的 jquery 对象
  $(':checkbox').checkAll();
})

$('#checkedNoBtn').click(function(){
  $(':checkbox').unCheckAll();
})

$('#reverseCheckedBtn').click(function(){
  $(':checkbox').reverseCheck()
})
</script>
</body>
</html>
 
 
 
/*
 扩展jQuery的工具方法 : $.extend(object)
   min(a, b) : 返回较小的值
   max(c, d) : 返回较大的值
   leftTrim() : 去掉字符串左边的空格
   rightTrim() : 去掉字符串右边的空格
 */

//正则
/*
 ^   匹配字符串开始
 \s  匹配空格
 +   匹配一次或者多次
 $   匹配字符串的末尾
 */
//扩展$ 
$.extend({
  min:function(a,b){
    return a>b ? b:a;
  },
  max:function(a,b){
    return a>b ? a:b;
  },
  leftTrim:function($str){
    return str.replace(/^\s+/,'')
  },
  rightTrim:function(str){
    return str.replace(/\s+$/,'')
  }
  
}) 


//扩展 $('#id').XXXXX
//$.fn.extend(object)
// checkAll() : 全选
// unCheckAll() : 全不选
// reverseCheck() : 全反选

 $.fn.extend({
    checkAll:function(){
      this.prop('checked',true);
    },
    unCheckAll:function(){
      this.prop('checked', false);
    },
    reverseCheck:function(){
      this.each(function(){
        this.checked = !this.checked;
      })
 
    }
 })