用 jQuery写的可编辑的表格

来源:互联网 发布:开淘宝网店有赚钱的吗 编辑:程序博客网 时间:2024/06/05 18:38
 

用 jQuery编写的可编辑的表格

1、     思路

首先实现隔行换色的效果

当点击想要修改的列时,创建文本框

当点击 enter时提交数据,当点击esc返回的键时,取消输入的内容

2.代码解析

    Html代码 :

    <body>

    <div align="center">

        <h1>

           显示员工界面

        </h1>

       <table>

           <thead>

              <tr>

                  <td><input type="checkbox" name="chk"> </td>

                  <td>序号 </td>

                  <td>姓名</td>

                  <td>性别</td>

                  <td>年龄</td>

                  <td>出生日期</td>

                  <td>薪资</td>

                  <td>部门</td>

              </tr>

           </thead>

           <tbody>

              <tr>

                  <td><input type="checkbox" name="chk"> </td>

                  <td >1</td>

                  <td>老王</td>

                  <td>女</td>

                  <td>23</td>

                  <td>5435343</td>

                  <td>10000</td>

                  <td>河软</td>

              </tr>

              <tr>

                  <td><input type="checkbox" name="chk"> </td>

                  <td>1</td>

                  <td>老王</td>

                  <td>女</td>

                  <td>23</td>

                  <td>5435343</td>

                  <td>10000</td>

                  <td>河软</td>

              </tr>

              <tr>

                  <td><input type="checkbox" name="chk"> </td>

                  <td>1</td>

                  <td>老王</td>

                  <td>女</td>

                  <td>23</td>

                  <td>5435343</td>

                  <td>10000</td>

                  <td>河软</td>

              </tr>

           </tbody>

       </table>

    </div>

  </body>

 

Js代码为:

    $(document).ready(function(){

      

       //实现隔行变色的效果

       //首先获取tbody中的所有的tr,然后采用:even选择出奇数行的所有的特点,但是返回的是偶数行

       $("tbody>tr:even").css("background-color","pink");

       ///功能一样,是偶数行,实际是奇数行

       $("tbody>tr:odd").css("background-color","#BEBEBE");

       //当点击tbody中的td时,能够把td中的内容替换成一个text框,进行修改

       //点击enter  能够提交数据  点击esc键撤销修改

 

       //获取所有的tr,并注册事件,因为在遍历的时候序号不可编辑,所以序号这一列不能编辑

       $("tbody tr").each(function(index,dom){

           //通过dom得到所有的tr,判断tr中的td如果是>2的才可以编辑

           $(dom).children("td:gt(1)").click(function(){

              //获取td的jQuery对象

              var $td = $(this);//注意得到td的jQuery的对象的时候用的是this,也就是点击哪个获取哪个,如果用的是dom,得到的是整行。

             

              //得到文本框内容

              var tdText = $td.text();  //text  取得所有匹配元素的内容。

             

              //判断如果已经创建了input,就不在创建了,如果没有创建,在创建,是通过判断孩子节点

              if($td.children("input").length>0){

                  return false;

              }

                 

              //清空td中的文本

              $td.html("");  //设置每一个匹配元素的html内容       

 

              //创建可编辑的input

              var $input = $("<input type='text'/>");

              $input.css("background-color",$td.css("background-color"));//设置input的框元素和td中的颜色相同

              $input.css("width",$td.width());//宽度和td的宽度相同

              $input.css("border-width",0);//文本框的边框为0

             

              //在得到文本框的同时得到文本框以前的内容

              $input.val(tdText);  //获得第一个匹配元素的当前值。

             

              //把创建的input放到td中

              $td.append($input);

             

              //当触发td的键盘事件的时候,如果点enter键,保存,如果点esc,取消输入的内容   

              $td.keyup(function(event){

                  //获取键盘按下的事件

                  var key = event.which;

                  //alert(key);

                  if (key == 13) {

                     $td.html($input.val());//得到文本框的值并放到td中

                  }else if(key==27){

                     $td.html(tdText);

                  }

              });

           });

       });

    });

 

3.总结

在这里我大概总结一下text(),val(),html()的区别,因为在这个例子之间,反复用到了这几个属性

    html():取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。

    html(val):设置每一个匹配元素的html内容

val():获得第一个匹配元素的当前值。

val(val): 设置每一个匹配元素的值。

text():取得所有匹配元素的内容。

text(val): 设置所有匹配元素的文本内容

 

 效果图为:

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 万和和万家乐热水器哪个好 万家乐厨房电器怎么样 万家乐60升电热水器 万家乐50升电热水器 万家乐燃气热水器怎么用 万家乐燃气热水器怎么用图解 广东万家乐燃气具有限公司 万家乐热水器服务电话 万家乐电热水器插头 万家乐热水器打火打不着 万家乐燃气热水器安装 万家乐燃气灶松手熄火 万家乐电热水器服务电话 万家乐售后维修电话 万家乐燃气热水器好吗 万家乐燃气热水器16 万家乐电热水器价格表 万家乐电热水器好不好 万家乐和万和燃气灶哪个好 万家乐热水器服务热线 万家乐灶具质量怎么样 万家乐天然气热水器打不着火 万家乐燃气灶多少钱 万家乐燃气热水器e4 万家乐燃气热水器多少钱 万家乐燃气热水器12 万家乐燃气热水器服务电话 万家乐电热水器多少钱 万家乐燃气热水器忽冷忽热 万家乐电热水器质量怎么样 万家乐热水器打不着火的原因 万家乐灶具维修电话 万家乐燃气热水器排行 万家乐电热水器不加热 万家乐燃气热水器uf1 万家乐吸油烟机怎么样 万家乐热水器点不着火 万家乐燃气灶排行榜 万家乐燃气热水器调节 万家乐燃气热水器客服电话 万家乐燃气热水器清洗