小谷实战Jquery(二)--可以编辑的表格

今天实现的是一个表格的例子,通过获取表格的奇数行,设置背景色属性,使得奇偶行背景色不同.这个表格可以在单击时编辑,回车即更改为新输入的内容;ESC还原最初的文本.表格的实现思路很清晰,只是在实现的过程中会出现一些小bug.通过jQuery函数就可以一一解决.

下面看下HTML代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JQuery实例:可以编辑的表格</title>

<link rel="stylesheet" type="text/css" href="EditTable.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="EditTable.js"></script>

</head>

<body>
	<table>
		<thead>
			<tr>
				<th colspan="2">鼠标点击表各项就可以编辑</th>
			</tr>

		</thead>

		<tbody>
			<tr>
				<th>学号</th>
				<th>姓名</th>
			</tr>
			<tr>
				<td>000001</td>
				<td>张三</td>
			</tr>
			<tr>
				<td>000002</td>
				<td>李四</td>
			</tr>
			<tr>
				<td>000003</td>
				<td>王五</td>
			</tr>
			<tr>
				<td>000004</td>
				<td>赵六</td>
			</tr>
		</tbody>
	</table>
</body>
</html>

在table中可以包含thead和tbody标签,表头的内容放在th中.这样写的好处是可以通过标签选择器选择需要的内容,比如:tbody th{}

js代码:

//需要首先通过Javascript来解决内容部分的奇偶行的背景色不同
$(function(){
	//找到表格的内容区域中所有的奇数行
	$("tbody tr:even").css("background-color","#ECE9D8");
	//找到所有的学号单元格,保存起来
	var numTd = $("tbody td:even");	

	numTd.click(function(){
		var tdObj=$(this);
		if(tdObj.children("input").length>0){
			// 当前td中有input文本框,不执行click处理
			return false;
		}
		var txt = tdObj.html();
	 	//创建一个文本框
		//去掉文本框边框
		//设置文本框中字体为16px
		//使文本框的宽度和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"))
			.val(tdObj.html());

		//将文本框插入到td中
		tdObj.html("");
		inputObj.appendTo(tdObj);
		//文本框插入之后被选中
		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();
				tdObj.html(inputtext);
			}
			//esc
			if(keycode==27){
				tdObj.html(txt);
			}
			});
	 });
});

在$ 函数中,通过$("tbody tr")可以返回tbody中所有tr节点,另外,$("tbody tr:even")可以返回tbody中所有索引值是偶数的tr节点.

在上面的代码中我们可以看到html方法,它可以设置或获取节点的html内容:

tdObj.html(inputtext);  为设置节点内容

var txt=tdObj.html();  为获取节点html内容

var inputObj=$("<input type=‘text‘>");

在这里如果$()方法的参数是一般html文本就可以创建一个DOM节点,并包装成jQuery对象.而后面一连串的CSS代码是链式写法,由于jQuery大部分方法都会返回执行这个方法的jQuery对象,因此可以采用这个写法来编写给予jQuery的代码.

在处理文本框上回车和ESC按键操作时,响应keyup事件,在jQuery中,某个事件方法的参数function上可以定义一个event的参数,jQuery会屏蔽浏览器的event差异,传给我们一个可用的event对象,这个event对象上有一个which属性可以获得键盘按键的键值.


CSS代码:

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

CSS 代码没有什么可说的了,这里用的是最简单的CSS样式而且代码量很少.jQuery的强大才刚刚体会到,接下来的实战一定会更加容易,希望能学到更多的知识,增加代码量.

小谷实战Jquery(二)--可以编辑的表格,布布扣,bubuko.com

时间: 2024-08-03 14:11:12

小谷实战Jquery(二)--可以编辑的表格的相关文章

实战Jquery(二)--能够编辑的表格

今天实现的是一个表格的样例,通过获取表格的奇数行,设置背景色属性,使得奇偶行背景色不同.这个表格能够在单击时编辑,回车即更改为新输入的内容;ESC还原最初的文本.表格的实现思路非常清晰,仅仅是在实现的过程中会出现一些小bug.通过jQuery函数就能够一一解决. 以下看下HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/D

小谷实战Jquery(四)--标签页效果

这两天完成了实战四五六的例子,实例四是标签页的实现方法,实例五是级联菜单下拉框,实例六是窗口效果,都是web层常用的效果.越到后面越发觉得技术这东西,就是一种思路的展现,懂了要实现效果的来龙去脉,代码就是表达的一种工具,后台展示的是逻辑,前台展现的是图形. 说一下这个标签页吧,第一个标签由两部分组成,鼠标移到上面标签上,下面对应显示相应的内容.借助CSS实现标签和内容相融合的效果.这次我们先看最终效果. HTML: <span style="font-size:18px;">

小谷实战Jquery(一)--用户名校验

小谷童鞋休息了好几天,终于又开始学习了.今天学的是Jquery,先来看看神马是jQuery? JQuery is designed to change the way that you write JavaScript. The focus of jQuery is "find some elements, do something with them". write less,do more. 它是一个兼容多浏览器的javascript框架,兼容CSS3,使用户能方便地处理HTML,

小谷实战Jquery(三)--横向纵向菜单

每天一个实例看来速率有点低了,今天要多做一点.好了,这次实现的是一个简单的菜单,Web项目中常见的菜单有两种:纵向和横向.从纵向说起,看一下最初的代码. html代码实现最基本的菜单与子菜单 <span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD

JQuery实现可编辑的表格

点击表格后可直接编辑,回车或鼠标点击页面其他地方后编辑生效,按Esc可取消编辑 第一种单击表格可以编辑的方法 //相当于在页面中的 body标签加上onload事件$(function() {    //找到所有的td节点    var tds = $("td");    //给所有的td添加点击事件    tds.click(function() {        //获得当前点击的对象        var td = $(this);        //取出当前td的文本内容保存起

jQuery——可以编辑的表格

今天学习了利用jQuery实现可以编辑的表格这个例子.这个例子需求是这样的:在前台的表格中单击单元格便可修改其中的内容,回车键保存修改的内容,esc撤销保存的内容.原理:单击客户端表格单元格时,在单元格中添加一个文本框,并将单元格中原来的内容赋值给文本框,再进一步去修改文本框内容,修改后将文本框内容重新赋值给单元格. 源码: 前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="

JQuery实战--可以编辑的表格

今天学习到了一个实例,其名称为的可以编辑的表格.其实现的效果是:点击页面上的单元格,单元格中的内容变成选中状态,变成可以输入的状态,向单元格中输入内容,按下回车,单元格保存其修改后的结果,按ESC,单元格的内容还原成原来的内容.其原理是:点击单元格的时候,在单元格内添加一个文本框,其大小充满整个单元格,其内容为单元格中的内容,修改后的内容重新赋给单元格. HTML代码: <span style="font-size:18px;"><!DOCTYPE html>

从零开始学习jQuery (二) 万能的选择器

原文:从零开始学习jQuery (二) 万能的选择器 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuery

第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件

jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于 DataGrid(数据表格)组件. 一.加载方式 建立一个 JSON 文件 [ { "id": 1, "name": "系统管理", "date": "2015-05-10", &quo