• jQuery——能够编辑的表格


    版权声明:欢迎转载,请注明出处 https://blog.csdn.net/suneqing/article/details/26856635

        今天学习了利用jQuery实现能够编辑的表格这个样例。这个样例需求是这样的:在前台的表格中单击单元格便可改动当中的内容,回车键保存改动的内容。esc撤销保存的内容。原理:单击client表格单元格时,在单元格中加入一个文本框,并将单元格中原来的内容赋值给文本框。再进一步去改动文本框内容,改动后将文本框内容又一次赋值给单元格。

    源代码:

    前台代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    <!DOCTYPE html
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>jq2—能够编辑的表格</title>
        <link href="css/editTable.css" rel="stylesheet" />
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/editTable.js"></script>
        <%--<script type="text/javascript" src="js/jquery-1.9.1.js"></script>--%>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
    		<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>
        </div>
        </form>
    </body>
    </html>

    css代码:

    body {
    }
    table {
        border:1px solid #000000;
        border-collapse:collapse;/*单元格边框合并*/
        400px;
    }
        table td {
        border:1px solid #000000;   
        50%;
    }
        table th {
        border:1px solid #000000;   
        50%;
        }
    tbody th {
        background-color:#426fae;
    }

    jquery代码

    $(function () {
        //找到表格中除了第一个tr以外的全部偶数行
        //使用even为了通过tbody tr返回全部tr元素
        $("tbody tr:even").css("background-color", "#ece9d8");
        //找到全部的学号单元格
        var numId = $("tbody td:even");
    
        //给单元格注冊鼠标点击事件
        numId.click(function () {
            //找到相应当前鼠标点击的td,this相应的就是响应了click的那个td
            var tdObj = $(this);
            //推断td中是否有文本框
            if (tdObj.children("input").length>0) {
                return false;
            }
            //获取表格中的内容
            var text = tdObj.html();
            //清空td中的内容
            tdObj.html("");
            //创建文本框
            //去掉文本框的边框
            //设置文本框中字体与表格中的文字大小同样。

    //设置文本框的背景颜色与表格的背景颜色一样 //是文本框的宽度和td的宽度同样 //并将td中值放入文本框中 //将文本框插入到td中 var inputObj = $("<input type='text'>").css("border-width", "0").css("font-size", tdObj.css("font-size")).css("background-color", tdObj.css("background-color")).width(tdObj.width()).val(text).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(); //将td中的内容改动为文本框的内容 tdObj.html(inputtext); } //处理esc的内容 if (keycode==27) { //将td中的内容还原成原来的内容 tdObj.html(text); } }); }); });

    总结:通过这一实例的学习能获得的知识点:

    一、html方面

    1.table中能够包括thead和tbody

    2.表头的内容中能够放th中

    3.table{}这样的写法称作标签选择器,能够对整个table产生影响。

    4.table td{}这样的写法表示table中包括的全部td。

    二、jquery方面

    $()的括号里能够放4种不同的參数

    1.參数直接放function,表示页面载入完成:比如上述样例中jquery代码中的第1行$(function(){})

    2.參数能够是css类选择器。并被包装成一个jquery对象。比如:上述样例中jquery代码的第4行$(“tbody tr:even”)

    3.參数假设是html文本,能够创建dom节点,并包装成jquery对象。比如:上述样例中jquery代码的第27行$("<input type='text'>")

    4.參数能够是一个dom对象,这种方法相当于吧dom对象装换成jquery对象。上述样例中jquery代码的第11行var tdObj = $(this)

    本样例中的jquery对象

    1.jquery对象后面加css属性。能够设置节点的css属性。比如上述样例中jquery代码中的第4行$("tbody tr:even").css("background-color", "#ece9d8");

    2.jquery对象内容中包括了选择器相应的dom节点,以数组保存。

    3.jquery对象后面加html方法能够设置或获取节点的html内容。比如上述样例中jquery代码中的第17行var text = tdObj.html()

    4.jquery对象后面加val方法。能够获取或设置节点的value值。比如上述样例中jquery代码中第41行var inputtext = $(this).val()

    5.jquery对象后面加width方法,能够设置或获取某个节点的宽度。比如上述样例中jquery代码中第27行tdObj.width()

    6.jquery对象后面加apppendTo方法能够将一个节点追加到还有一个节点全部子节点后面。比如上述样例中jquery代码中第27行appendTo(tdObj)

    7.jquery对象后面加trigger方法能够出发某个js事件发生。比如上述样例中jquery代码中第29行inputObj.trigger("focus").trigger("select")

    8.jquery对象后面加children方法能够获得某个节点的子节点,能够制定參数来限制子节点的内容。比如上述样例中jquery代码中第13行tdObj.children("input").length

    9.假设选择器返回的jquery对象中包括多个dom节点,在这个对象上注冊相似click事件,全部dom节点都会用于此事件。比如上述样例中jquery代码中第9行numId.click;

    源代码地址:http://download.csdn.net/detail/suneqing/7396107

  • 相关阅读:
    剑指offer 面试26题
    剑指offer 面试25题
    剑指offer 面试24题
    剑指offer 面试23题
    剑指offer 面试22题
    剑指offer 面试19题
    剑指offer 面试20题
    剑指offer 面试21题
    剑指offer 面试18题
    剑指offer 面试17题
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10617127.html
  • Copyright © 2020-2023  润新知