1. 程式人生 > >jQuery--編輯表格

jQuery--編輯表格

bae event enter sheet data- ava 插入 表格 基本操作

表格操作是我們常常遇到的,還記得剛開始學習牛腩新聞公布系統時。跟著視頻進行表格的一些基本操作。而對它的原理與概念全然不懂,不過跟著老師的操作而進行操作。

通過這次學習,對表格的操作有了進一步的了解與掌握。

首先來看一下其效果:(網頁效果:http://192.168.24.71:8010/%E7%BC%96%E8%BE%91%E8%A1%A8%E6%A0%BC/EditTable.html)

技術分享

實現過程:

HTML代碼:

<span style="font-size:18px;"><!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=UTF-8" />
<title>JQuery實戰2-編輯表格</title>
<link type="text/css" rel="stylesheet"href="css/editTable.css" />
<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>1</td>
                   <td>王朋波</td>
           </tr>
           <tr>
             <td>2</td>
                   <td>victor</td>
           </tr>
           <tr>
             <td>3</td>
                   <td>wangpengbo</td>
           </tr>
           <tr>
             <td>4</td>
                   <td>wang</td>
           </tr>
         </tbody>
  </table>
</body>
</html></span>

Javascript中的代碼:

<span style="font-size:18px;">//須要通過js來解決內部奇偶行背景色不同
 
$(function(){
         //找到表格內容區域中除了第一個tr以外的全部奇數行
         //使用even是為了把通過tbodytr返回的全部元素中,在數組下標是偶數的元素返回
         $(‘tbody tr:even‘).css(‘background-color‘,‘#ECE9D8‘);
        
         //須要找到全部的學號單元格
         // $(‘tbodytd:even‘).css(‘background-color‘,‘red‘);
         var numTd=$(‘tbodytd:even‘);
         //給這些表格註冊鼠標單擊的事件
         numTd.click(function(){
                  
                   //找到當鼠標點擊的td。this相應的響應了click的那個id
                   vartdobj=$(this);
                   if(tdobj.children(‘input‘).length>0){
                            //當前td中 input。不運行click處理
                            returnfalse;
                   }
                   vartext=tdobj.html();
                   //清空td中的內容
                   tdobj.html(‘‘);
                   //創建一個文本框
                   //去掉文本框的邊框              
                   //設置文本框中文字大小為16px
                   //使文本框的寬度與表格寬度同樣              
                   // 設置文本框背景色            
                   //須要將當前td中的內容放到文本框
                   //將文本框插入。appendTo方法能夠將一個節點追加到還有一個節點全部子節點的後面
                   varinputObj=$("<inputtype=‘text‘>").css(‘border-width‘,‘0‘).css(‘font-size‘,‘16px‘).width(tdobj.width()).css(‘background-color‘,tdobj.css(‘background-color‘)).val(text).appendTo(tdobj);                     
                  
                   // 使文本框插入之後就被選中
                   inputObj.trigger(‘focus‘).trigger(‘select‘);
                   //inputObj.get(0).select();
                  
                   inputObj.click(function(){
                            returnfalse;   //清除點擊td之後出現一個HTML代碼
                   })
                  
                   //處理文本框上回車和esc按鍵操作
                   inputObj.keyup(function(event){
                            //獲取當前按下鍵盤的鍵值
                            varkeycode=event.which;
                            //處理回車的情況
                            if(keycode==13){
                                     //獲取當前文本框內容
                                     varinputtext=$(this).val();
                                     //將td中的內容改動成文本框中 的內容
                                     tdobj.html(inputtext);
                            }
                            //處理esc的情況
                            if(keycode==27){
                                     //將td中的內容還原成text
                                     tdobj.html(text);
                            }
                   })
         })
})</span>

Css樣式中的代碼:

<span style="font-size:18px;"> 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 :#A3BAE9;
 
}</span>


這裏我們須要應用一個JQuery文件。事實上最基本的難點也在這裏。只是,眼下沒有對這個進行深入的研究,我們僅僅須要可以從JQuery中找到我們須要的信息。可以使用其包括的方法實現我們的功能就可以。

在本實例中須要註意的地方是奇偶行顏色的設置上,假設不使用JQuery。相對來說有點困難,過程也會繁瑣。可是在JQuery中已經有了封裝好的方法,even方法是獲取奇數行,而odd是獲取偶數行。

實例小結:

這次主要是對表格table的操作。由實例能夠看出,事實上它也能夠看作標簽選擇器;還有就是JQuery的使用,當中的方法會給我帶來眾多的便利,熟練掌握這些方法是我們這一階段所須要做的。

通過這一個小實例的學習,對js的學習有了進一步的認識。尤其是如今跟著做項目,用到js和JQuery的地方有非常多。初次接觸的時候。感覺無從下手。

只是。經過這些實例之後,不能說掌握。但最起碼已經找到了入手點。所以,學習的同一時候,一定要親自己主動手操作,哪怕是看似簡單的樣例。也要用心。

jQuery--編輯表格