分享

HTML TABLE批量添加行与删除行

 悟静 2012-03-07
  1. <table class="page_datalist" id="batch_add_table">  
  2.         <thead>  
  3.             <tr>  
  4.                 <th  width="3%">日期</th>  
  5.                 <th scope="col" width="2%">开始时间</th>  
  6.                 <th scope="col" width="2%">结束时间</th>  
  7.                 <th scope="col" width="10%">议题</th>  
  8.                 <th scope="col" width="8%">地点</th>  
  9.                 <th scope="col" width="20%">内容</th>  
  10.                 <th scope="col" width="8%">操作</th>  
  11.             </tr>           
  12.         </thead>  
  13.           
  14.         <tbody>  
  15.          <tr>  
  16.            
  17.           <!-- 日期 -->  
  18.              <td align="left">  
  19.              <input id="date" type="text"  
  20.                                 name="date" class="Wdate"  
  21.                                 onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})"  
  22.                                 value=""  
  23.                                 readonly="readonly" />  
  24.          </td>  
  25.                   
  26.          <!-- 开始时间 -->      
  27.           <td align="left">  
  28.                         <input id="startTime"  
  29.                         type="text" name="startTime" class="Wdate"  
  30.                         value=""  
  31.                         onfocus="WdatePicker({dateFmt:'HH:mm'})"  
  32.                         readonly="readonly" />  
  33.                     </td>  
  34.                       
  35.          <!-- 结束时间 -->              
  36.          <td align="left">  
  37.                             <input id="endTime" type="text"  
  38.                         name="endTime" class="Wdate"  
  39.                         value=""  
  40.                         onfocus="WdatePicker({isShowClear:false,dateFmt:'HH:mm',minDate:'#F{$dp.$D(\'startTime\')||\'2020-10-01\'}'})"  
  41.                         readonly="readonly" />  
  42.         </td>  
  43.             
  44.           <!-- 议题 -->   
  45.        <td align="left">        
  46.                 <input id="topic" type="text"  
  47.                         value="" maxlength="128" />  
  48.             </td>   
  49.           
  50.          <!-- 地点 -->  
  51.       <td align="left">  
  52.       <input id="location" type="text"   
  53.                         value=""  maxlength="128" />  
  54.       </td>  
  55.           
  56.     <!-- 内容 -->  
  57.     <td align="left">  
  58.     <textarea  id="description" rows="1000" cols="40"  
  59.                             name="description" style="height:80px;"></textarea>      
  60.     </td>  
  61.                    
  62.      <td align="center">  
  63.                 <a href="javascript:void(0);" onClick="insertRow(this);">添加</a>  
  64.                 <a href="javascript:void(0);" onClick="delCurrentRow(this);">删除</a>  
  65.      </td>  
  66.        
  67.        </tr>  
  68.          
  69.   </tbody>  
  70.     </table>  

 

 

对应的JS函数:

[javascript] view plaincopy?
  1. /** 
  2.     *删除当前行 
  3.     */  
  4.     function delCurrentRow(obj){  
  5.         if(confirm("确定删除当前议程?")){  
  6.              if(document.all.batch_add_table.rows.length>2){  
  7.                  var clickedRow=obj;  
  8.                  while(clickedRow.tagName!="TR"){  
  9.                      clickedRow=clickedRow.parentNode;  
  10.                  }  
  11.                  clickedRow.parentNode.removeChild(clickedRow);  
  12.              }else{  
  13.                  alert("此行不能进行删除!");  
  14.                  return;  
  15.              }  
  16.         }  
  17.     }  
  18.       
  19.     /** 
  20.     *复制当前行并插入到表格中去 
  21.     */  
  22.     function insertRow(obj){  
  23.         //获取当前表格batch_add_table的行总数   
  24.         var rowNum=document.all.batch_add_table.rows.length;  
  25.         //获取当前表格的行并克隆   
  26.         var newrow = document.all.batch_add_table.rows[rowNum-1].cloneNode(true);   
  27.         //新行的列数   
  28.         var colNum=newrow.cells.length;  
  29.         //获取当前行并进行递归循环操作找到当前行的节点   
  30.         var oldTr=obj;  
  31.         while(oldTr.tagName!="TR"){  
  32.             oldTr=oldTr.parentNode;  
  33.         }  
  34.         //var oldTr = $("tr:last", $("#batch_add_table"));   
  35.         //var oldTr = $("tr:last", $("#batch_add_table"));   
  36.         //通过JQUERY选择器来获取对应的控件的值   
  37.         var date= $("#date", oldTr).val();  
  38.         var startTime= $("#startTime", oldTr).val();  
  39.         var endTime = $("#endTime", oldTr).val();  
  40.           
  41.         if(date==''){  
  42.             alert('请选择议程日期!');  
  43.             return ;  
  44.         }  
  45.         if(startTime==''){  
  46.             alert('请选择议程开始时间!');  
  47.             return ;  
  48.         }  
  49.         if(endTime==''){  
  50.             alert('请选择议程结束时间!');  
  51.             return ;  
  52.         }  
  53.           
  54.         $("#startTime", newrow).val(endTime);  
  55.         //复制当前行到表格   
  56.         document.all("batch_add_table").appendChild(newrow);   
  57.     }  


 

 

彰显JQUERY选择器的优势的几句:

[javascript] view plaincopy?
  1. //var oldTr = $("tr:last", $("#batch_add_table"));   
  2. //var oldTr = $("tr:last", $("#batch_add_table"));   
  3. //通过JQUERY选择器来获取对应的控件的值   
  4. var date= $("#date", oldTr).val();  
  5. var startTime= $("#startTime", oldTr).val();  
  6. var endTime = $("#endTime", oldTr).val();  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多