jquery插件方式实现table查询功能

1.写插件部分,如下:

;(function($){

  $.fn.plugin = function(options){

    var defaults = {

      //各种属性,各种参数

    }

    var options = $.extend(defaults, options);

    this.each(function(){

      //功能代码

      var _this = this;

    });

  }

})(jQuery);

附上一个例子:

 1 ;(function($){
 2     $.fn.table = function(options){
 3     var defaults = {
 4             //arguments , properties
 5             evenRowClass : ‘evenRow‘,
 6             oddRowClass : ‘oddRow‘,
 7             currentRowClass : ‘currentRow‘,
 8             eventType : ‘mouseover‘,
 9             eventType2 : ‘mouseout‘,
10         }
11         var options = $.extend(defaults, options);
12
13         this.each(function(){
14
15             //function code
16             var _this = $(this);
17             //even row
18             _this.find(‘tr:even:not("#thead")‘).addClass(options.evenRowClass);
19             //_this.find(‘#thead‘).removeClass(options.evenRowClass);
20             // odd row
21             _this.find(‘tr:odd‘).addClass(options.oddRowClass);
22
23             /*_this.find(‘tr‘).mouseover(function(){
24                 $(this).addClass(options.currentRowClass);
25             }).mouseout(function(){
26                 $(this).removeClass(options.currentRowClass);
27             });*/
28
29             _this.find(‘tr‘).bind(options.eventType, function(){
30                 $(this).addClass(options.currentRowClass);
31             });
32
33             _this.find(‘tr‘).bind(options.eventType2, function(){
34                 $(this).removeClass(options.currentRowClass);
35             });
36
37         });
38         return this;
39     }
40 })(jQuery);

html部分调用插件如下:
$();==$(function(){});==$(document).ready(); 等页面加载成功后执行

;$(function(){

  $(‘#table1‘).table({
   
    //arguments , properties
    evenRowClass : ‘evenRow1‘,
    oddRowClass : ‘oddRow1‘,
    currentRowClass : ‘currentRow1‘ 
 });

});

附上代码:

  1 <!doctype html>
  2 <html lang="en">
  3  <head>
  4   <meta charset="UTF-8">
  5   <meta name="Generator" content="EditPlus®">
  6   <meta name="Author" content="">
  7   <meta name="Keywords" content="">
  8   <meta name="Description" content="">
  9   <title>Document</title>
 10   <style>
 11     *{margin:0; padding:0;}
 12     table{
 13         border-collapse:collapse;
 14         width:100%;
 15         border:1px solid red;
 16         margin-top:50px;
 17         text-align:center;
 18     }
 19
 20     tr, th, td{
 21         height:30px;
 22         border:1px solid red;
 23     }
 24     .evenRow1{
 25         background:red;
 26     }
 27     .oddRow1{
 28         background:orange;
 29     }
 30     .currentRow1{
 31         background:blue;
 32     }
 33     #ss{
 34         float:right;
 35         margin-right:100px;
 36     }
 37     #search{
 38         font-size:14px;
 39         width:50px;
 40     }
 41
 42   </style>
 43         <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 44     <script src="jquery-table-1.0.js"></script>
 45  </head>
 46  <body>
 47  <script>
 48  ;$(function(){
 49     $(‘#table1‘).table({
 50
 51         //arguments , properties
 52         evenRowClass : ‘evenRow1‘,
 53         oddRowClass : ‘oddRow1‘,
 54         currentRowClass : ‘currentRow1‘
 55
 56     });
 57
 58     $(‘input[type=button]‘).click(function(){
 59             var text = $(‘input[type=text]‘).val();
 60             $(‘#table1 tr:not("#thead")‘).hide().filter(‘:contains("‘+text+‘")‘).show();
 61         });
 62
 63     });
 64
 65  </script>
 66
 67    <div id="ss">
 68   <input type="text" placeholder="请输入查询数据">
 69   <input id="search" type="button" value="查询">
 70   </div>
 71
 72   <table id="table1">
 73     <tr id="thead">
 74         <th>姓名</th>
 75         <th>学号</th>
 76         <th>性别</th>
 77         <th>年龄</th>
 78
 79     </tr>
 80     <tr>
 81         <td>张三</td>
 82         <td>1</td>
 83         <td>男</td>
 84         <td>20</td>
 85     </tr>
 86
 87     <tr>
 88         <td>李四</td>
 89         <td>2</td>
 90         <td>男</td>
 91         <td>30</td>
 92     </tr>
 93     <tr>
 94         <td>张三</td>
 95         <td>1</td>
 96         <td>女</td>
 97         <td>20</td>
 98     </tr>
 99
100     <tr>
101         <td>李四</td>
102         <td>2</td>
103         <td>男</td>
104         <td>30</td>
105     </tr>
106     <tr>
107         <td>王五</td>
108         <td>3</td>
109         <td>男</td>
110         <td>30</td>
111     </tr>
112     <tr>
113         <td>王五</td>
114         <td>3</td>
115         <td>男</td>
116         <td>30</td>
117     </tr>
118     <tr>
119         <td>张三</td>
120         <td>1</td>
121         <td>女</td>
122         <td>20</td>
123     </tr>
124
125     <tr>
126         <td>李四</td>
127         <td>2</td>
128         <td>男</td>
129         <td>30</td>
130     </tr>
131
132   </table>
133  </body>
134 </html>

通过这个例子学到了jquery 对象级插件开发

时间: 2024-08-10 19:15:58

jquery插件方式实现table查询功能的相关文章

雷林鹏分享:jQuery EasyUI 数据网格 - 添加查询功能

jQuery EasyUI 数据网格 - 添加查询功能 本实例演示如何从数据库得到数据,并将它们显示在数据网格(datagrid)中.然后演示如何根据用户输入的搜索关键词搜寻显示结果. 创建数据网格(DataGrid) 创建带有分页功能的数据网格(datagrid),然后添加工具栏到其中. url="datagrid24_getdata.php" toolbar="#tb" title="Load Data" iconCls="icon

javaScript学习总结(二)——jQuery插件的开发

概要 jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用,在jQuery官网有许多插件:http://plugins.jquery.com/ 一.插件开发基础 1.1.$.extend 在jQuery根命名空间下直接调用的方法可以认为是jQuery的静态方法或属性,常常使用方法名来调用,使用.方法名来调用,使用.extend这个静态方法可以完成两个功

开发一个jQuery插件——多级联动菜单

引言 开发中,有好多地方用到联动菜单,以前每次遇到联动菜单的时候都去重新写,代码重用率很低,前几天又遇到联动菜单的问题,总结了下,发现可以开发一个联动菜单的功能,以后想用的时候就方便多了.项目中每个页面都有引用jQuery,,开发个jQuery联动菜单插件,说动手就动手,下面跟大家分享分享. 我用的jQuery插件方式 (function($){ $.fn.casmenu=function(argvs){ //your code } })(jQuery); 其中jQuery传入的是jquery对

自定义jQuery插件

jQuery编写插件的两种方法 1.添加jQuery对象级的插件,是给jQuery类添加方法 写法: (function($){ $.fn.extend({ "函数名":function(自定义参数){ //这里写插件代码 } }); })(jQuery); 或者 (function($){ $.fn.函数名=function(自定义参数){ //这里写插件代码 } })(jQuery); 调用方法:$("#id").函数名(参数); 2.jQuery类级别的插件,

jQuery插件ImgAreaSelect 实例讲解一(头像上传预览和裁剪功能)

上一节随笔中,我们已经知道了关于jQuery插件ImgAreaSelect基本的知识:那么现在看一下实例: 首先,要知道我们应该实现什么功能? (1)图片能够实现上传预览功能 (2)拖拽裁剪图片,使其能够显示裁剪后的区域 (3)显示要裁剪区域的坐标 其次,该如何引用该插件呢? 那就具体看一下吧! 第一步:先将样式和文件包引入(根据你自己的位置引入) <!--引入imgareaselect的css样式--> <link rel="stylesheet" type=&qu

插件介绍 :cropper是一款使用简单且功能强大的图片剪裁jQuery插件。

简要教程 cropper是一款使用简单且功能强大的图片剪裁jQuery插件.该图片剪裁插件支持图片放大缩小,支持鼠标滚轮操作,支持图片旋转,支持触摸屏设备,支持canvas,并且支持跨浏览器使用. cropper提供了大量的参数.方法和事件供图片的剪裁操作. 安装 可以通过Bower或NPM来安装该插件. 1 2 bower install cropper npm install cropper                使用方法 使用该图片剪裁插件首先要引入必要的js和css文件. 1 2

jQuery插件实现的页面功能介绍引导页效果

新产品上线或是改版升级,我们会在用户第一次使用产品时建立一个使用向导,引导用户如何使用产品,如使用演示的方式逐一介绍界面上的功能模块,从而提升了用户体验和产品的亲和力. Helloweba.com之前也有相关文章介绍:<构建一个用于产品介绍的WEB应用>,相信对有需要的朋友有帮助.本文将介绍另一款基于jQuery的页面引导页插件:pagewalkthrough.js,来看如何使用它. 先点击这里可以看在线演示效果 HTML 首先记得加载所需的css文件和jQuery库文件,以及pagewalk

自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6

阿嚏~~~ 话说本屌丝没啥开发插件的经验,可是天公不作美,公司须要让我自己开发个图片放大的插件 但公司老大的话,宛如吾皇之圣旨,微臣必当肝脑涂地,莫敢不从啊~~~ 于是乎,作为一个超级小白,本人仅仅能瞎研究了,幸好黑天不负屌丝人,本屌丝最终搞出来了,尽管不尽善尽美,可是功能还是能够用的啦 先附上源代码,求各种大神指导: /******************************* * photobox跨浏览器兼容插件 v1.0(不支持IE6) * 格式:<a href="big.jpg

SeaJS中jQuery插件模块化及其调用方式

转载自:http://my.oschina.net/briviowang/blog/208587#OSC_h3_1 jQuery插件本质上是将命名空间挂在全局的jQuery或jQuery.fn上而非使用define定义的模块. JQuery的这种扩展机制同模块化要求模块的独立性,以及模块互相隔离有点冲突. jQuery插件数目众多,我们不打算做大量的转换工作,为模块化而模块化,甚至改变插件的调用方式, 这样对开发带来的价值不大.只希望通过模块加载器实现自动的依赖管理,按需加载,并且使用方式自然.