利用jquery給指定的table動態(tài)添加一行、刪除一行的方法
$("#mytable tr").find("td:nth-child(1)") 1表示獲取每行的第一列
$("#mytable tr").find("td:nth-child(3)") 3表示獲取每行的第三列
今天在項(xiàng)目中,剛好用到給指定的table添加一行、刪除一行,就直接找google,搜出來的東西不盡如人意,不是功能不好就是千篇一律,簡直浪費(fèi)時(shí)間還不討好,于是乎就自己動手封裝個(gè),現(xiàn)就把代碼分享出來,避免大伙重復(fù)造輪子,如有問題歡迎大伙拍磚指正,千萬可別人身攻擊,嘎嘎。。。
需求場景
1)、添加一行
支持在任意行添加一行且可配置的,如可在第一行添加一行、第二行添加一行、倒數(shù)第一行添加一行、倒數(shù)第二行添加一行,隨需求的變化都不會影響。
前提條件:行數(shù)需在表中存在否則添加不成功。
2)、刪除一行
支持動態(tài)刪除一行。
先演示結(jié)果,如中意了在好好研究代碼。
1、原始界面如下:
2、添加一行,如要添加一行需點(diǎn)擊“添加”按鈕,現(xiàn)點(diǎn)擊兩下會自動添加兩行,效果如下截圖:
3、刪除一行,如要刪除指定行,先要選中行然后在點(diǎn)擊“刪除”按鈕進(jìn)行刪除(這不是廢話嘛~~~),現(xiàn)選中一行,效果如下截圖:
4、對選中行進(jìn)行刪除,現(xiàn)點(diǎn)擊“刪除”按鈕就會把選中的行刪除掉,效果如下截圖:
代碼如下:
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>利用jquery給指定的table添加一行、刪除一行</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.5.1.js"></script> <script type="text/javascript"> ////////添加一行、刪除一行封裝方法/////// /** * 為table指定行添加一行 * * tab 表id * row 行數(shù),如:0->第一行 1->第二行 -2->倒數(shù)第二行 -1->最后一行 * trHtml 添加行的html代碼 * */ function addTr(tab, row, trHtml){ //獲取table最后一行 $("#tab tr:last") //獲取table第一行 $("#tab tr").eq(0) //獲取table倒數(shù)第二行 $("#tab tr").eq(-2) var $tr=$("#"+tab+" tr").eq(row); if($tr.size()==0){ alert("指定的table id或行數(shù)不存在!"); return; } $tr.after(trHtml); } function delTr(ckb){ //獲取選中的復(fù)選框,然后循環(huán)遍歷刪除 var ckbs=$("input[name="+ckb+"]:checked"); if(ckbs.size()==0){ alert("要刪除指定行,需選中要刪除的行!"); return; } ckbs.each(function(){ $(this).parent().parent().remove(); }); } /** * 全選 * * allCkb 全選復(fù)選框的id * items 復(fù)選框的name */ function allCheck(allCkb, items){ $("#"+allCkb).click(function(){ $('[name='+items+']:checkbox').attr("checked", this.checked ); }); } ////////添加一行、刪除一行測試方法/////// $(function(){ //全選 allCheck("allCkb", "ckb"); }); function addTr2(tab, row){ var trHtml="<tr align='center'><td width='30%'><input type='checkbox' name='ckb'/></td><td width='30%'>地理</td><td width='30%'>60</td></tr>"; addTr(tab, row, trHtml); } function delTr2(){ delTr('ckb'); } </script> </head> <body> <table border="1px #ooo" id="tab" cellpadding="0" cellspacing="0" width="30%"> <tr align="center"> <td width="30%"><input id="allCkb" type="checkbox"/></td> <td width="30%">科目</td> <td width="30%">成績</td> </tr> <tr align="center"> <td width="30%"></td> <td width="30%">語文</td> <td width="30%">80</td> </tr> </table> <input type="button" onclick="addTr2('tab', -1)" value="添加"> <input type="button" onclick="delTr2()" value="刪除"> </body> </html>
以上就是小編為大家?guī)淼睦胘query給指定的table動態(tài)添加一行、刪除一行的方法全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
詳談Ajax請求中的async:false/true的作用(ajax 在外部調(diào)用問題)
下面小編就為大家?guī)硪黄斦凙jax請求中的async:false/true的作用(ajax返回值在外部調(diào)用問題)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02jQuery綁定點(diǎn)擊事件與改變事件的方式總結(jié)及多個(gè)元素綁定多個(gè)事件
我們一說到j(luò)Query中對于元素的修改,就是元素的內(nèi)容、屬性、樣式的修改,下面這篇文章主要給大家介紹了關(guān)于jQuery綁定點(diǎn)擊事件與改變事件的方式總結(jié)及多個(gè)元素綁定多個(gè)事件的相關(guān)資料,需要的朋友可以參考下2022-12-12jQuery動態(tài)創(chuàng)建元素以及追加節(jié)點(diǎn)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨Query動態(tài)創(chuàng)建元素以及追加節(jié)點(diǎn)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10jQuery1.9.1源碼分析系列(十六)ajax之a(chǎn)jax框架
這篇文章主要介紹了jQuery1.9.1源碼分析系列(十六)ajax之a(chǎn)jax框架 的相關(guān)資料,需要的朋友可以參考下2015-12-12原生js實(shí)現(xiàn)addclass,removeclass,toggleclasss實(shí)例
下面小編就為大家?guī)硪黄鷍s實(shí)現(xiàn)addclass,removeclass,toggleclasss實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過來看看吧2016-11-11