欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JQuery实现可编辑的表格

程序员文章站 2024-03-24 11:12:28
...

前言

   我们知道jQuery是一个轻便的JavaScript框架,里面封装了系统和程序常用到的一些方法,利用CSS、HTML可以将这些内容运用起来,做出各式各样好看的界面,下面小编使用jQuery实现了一个“可编辑的表格”的例子。

代码加说明

一、HTML代码

1.使用<thead></thead>实现标头;

2.一个table中可以包含thead和tbody

3.表头的内容可以放到th中。

<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>JQuery实战2-可编辑的表格</title>
	<link href="css/editTable.css" type="text/css" rel="stylesheet" />
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/editTable.js"></script>
</head>
<body>
 <table>
	<thead>
   		<tr>
     	  <th colspan=2>鼠标点击表格项就可以编辑</th>
  	    </tr>
	</thead>   
	
	<tbody>
    	<tr>
	  	  <th>学号</th>
	  	  <th>姓名</th>
		</tr>
	 	<tr>
	 	  <td>001</td>
	 	  <td>周星驰</td>	
	    </tr>	
		<tr>
	 	   <td>002</td>
	  	   <td>星女郎</td>	
	    </tr>	
		<tr>
	 	   <td>003</td>
	  	   <td>周润发</td>	
		</tr>
		<tr>
	  	  <td>004</td>
	 	  <td>赌神</td>	
		</tr>
	</tbody>
 </table>
</body>
</html>
JQuery实现可编辑的表格

二、CSS代码

1.table{}称作标签选择器,可以对整个页面所有table产生影响;

2.table td{} 表示table中包含的所有td;

3.border_collapse:collape 使表格中的单元格的边框合并

table{
  border:1px solid black;
  border-collapse:collapse;
  /* 修正单元格之间的边框不能合并的问题*/
   width:400px;
  }

table th{
	border:1px solid black;
	width:50%;
}
table td{
	border:1px solid black;
	width:50%; 
}
tbody th{
	background-color:#A3BAE9;
}

三、JavaScript文件代码

1.用来解决奇偶行背景色不同;

2.$(function(){})与$(documnet).ready(function(){})等价;

  $("tbody tr")  可以返回tbody中所有tr节点;

  $("tbody tr:even") 可以返回tbody中所有索引值是偶数的tr节点;

3.$()方法的参数如果是一个DOM对象时,这个方法相当于把DOM对象转换成jQuery对象;

   $()方法的参数如果是一段正确的HTML文本,则可以创建一个DOM节点,并包装成jQuery对象。

$(function(){ 
		//找到表格偶数行
		//odd是数组中下标为奇数的项,even是下标为偶数的项
		$("tbody tr:even").css("background-color","#ECE9D8");
		//找到所有学号的单元格
		var numId=$("tbody td:even");
		//给这些单元格注册点击事件
		numId.click(function(){
							 
				//找到当前鼠标点击的td
				var tdObj=$(this);
				//
				if(tdObj.children("input").length>0){
					//当前td中的input,不执行click处理
					return false;
					}
				var text=tdObj.html();
				//清空td的内容
				tdObj.html("");
				
				//创建一个文本框
				//去掉文本框的边框
				//文本框的文字大小16px
				//文本框的宽度与td相同				
				//设置文本框的背景色
				//将td中的内容放到文本框中 
				//将文本框插入到td中
				var inputObj=$("<input type='text' />").css("border-width","0")
				.css("font-size","16px")
				.width(tdObj.width())
				.css("background-color",tdObj.css("background-color"))
				.css("font",tdObj.css("font"))
				.val(text)
				.appendTo(tdObj);	
				//文本框插入后被选中
				//inputObj.get(0).select();
				inputObj.trigger("focus").trigger("select");
				inputObj.click(function(){
										return false;
										});
				//处理文本框的回车和Esc操作
				inputObj.keyup(function(event){
                               //获取键值
				var keycode=event.which;
                               //回车
		  		if(keycode==13){
					 //获取当前文本框的内容
					 var inputText=$(this).val();
					 //将td的内容修改为文本框的内容
					 tdObj.html(inputText);
					}
										
			   //esc情况,
			     //将td的内容还原成text
				 if(keycode==27){
			     tdObj.html(text);
				 }
			
			 });
				
	    });
		
});

小结

  关于jQuery的学习,不只是停留在例子上面,我们还要从中不断地深入,理解并能够运用起来。

感谢您的访问!