JQuery實戰--可以編輯的表格

來源:互聯網
上載者:User

JQuery實戰--可以編輯的表格

  今天學習到了一個執行個體,其名稱為的可以編輯的表格。其實現的效果是:點擊頁面上的單元格,單元格中的內容變成選中狀態,變成可以輸入的狀態,向單元格中輸入內容,按下斷行符號,單元格儲存其修改後的結果,按ESC,單元格的內容還原成原來的內容。其原理是:點擊單元格的時候,在單元格內添加一個文字框,其大小充滿整個單元格,其內容為單元格中的內容,修改後的內容重新賦給單元格。

  HTML代碼:

  

    可以編輯的表格        <script src="js/Jquery.js"></script>    <script src="js/EditTable.js"></script>    
 
滑鼠點擊表格就可以編輯
學號 姓名
0001 張三
0002 李四
0003 王五
0004 趙六
  CSS代碼:

body {}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-color:blue;}

  JQuery代碼:

//解決奇偶行的背景色不一樣//$(document).ready(function () {//});//簡化的ready寫法$(function () {    //找到表格的內容地區中除了第一個tr外的所有奇數行    //使用even是為了把tbody tr 返回的所有tr元素中,在數組裡面下標是偶數的元素返回,因為這些元素,實際上才是我們期望的奇數行。奇數行(odd)    $("tbody tr:even").css("background-color", "#999");    //找到所有的學號的儲存格    //$("tbody td:even").css("background-color", "red");    var numTd = $("tbody td:even");    //給這些儲存格註冊滑鼠點擊的事件    numTd.click(function () {        //找到當前滑鼠點擊的td,this對應的就是響應了click的那個td        var tdobj = $(this);        if (tdobj.children("input").length > 0) {            //當前td中的input,不執行click處理            return false;        }        var text = tdobj.html();        //建立一個文字框        //去掉文字框的邊框        //設定文字框中的文字的大小        //使文字框的寬度與td寬度相同        //設定文字框的背景色        //需要將當前td中的內容放到文字框中        var inputobj = $("").css("border-width", "0").css("font-size", "16px").width(tdobj.width()).css("background-color", tdobj.css("background-color")).val(text);        //清空td中的內容        tdobj.html("");        //將文本庫插入到td中        inputobj.appendTo(tdobj);        //文字框插入後就選中        inputobj.trigger("focus").trigger("select");        inputobj.get(0).select();        inputobj.click(function () {            return false;        });        //處理文字框上的斷行符號和ESC按鍵的操作        inputobj.keyup(function (event) {            //擷取索引值            var keycode = event.which;            //處理斷行符號的情況            if (keycode == 13) {                //擷取當前文字框的內容                var inputtext = inputobj.val();                tdobj.html(inputtext);            }            if (keycode == 27) {                tdobj.html(text);            }        });    });});

  以上就是整個執行個體的代碼了。

HTML總結:table中可以包含thead和tbody表頭的內容可以放在th中CSS總結:可以通過border-collaspse:collapse 這種方式來使表格中的單元格的邊框合并。當th上有背景色時,這個th屬於tr上定義的背景色會無效。JQuery總結:$(function(){})是$(document).ready(function(){})的簡化寫法。$("tbody tr:even")可以返回tbody中所有索引值為偶數的tr節點(:odd 是為奇數的tr節點)。function中的this代表執行這個function的對象children方法可以獲得某個節點的子節點,可以制定參數來限制子節點的內容html方法可以設定或擷取節點的HTML內容val方法可以擷取或設定節點的value值appendTo方法可以將一個節點追加到另一個節點所有子節點的後面trigger方法可以觸發某個Javascript的事件發生Jquery中某個方法的參數function上可以定義一個event的參數,Jquery會屏蔽瀏覽器的event差異,傳給我們一個可用的event對象Jquery的event對象上有一個which的屬性,可以獲得鍵盤按鍵的鍵值(13=斷行符號,27=ESC)

  只有通過不斷地實踐,不斷的總結,編製知識網,和學過的知識聯絡起來,那麼我們的收穫才是巨大的。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.