西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)javascript|JQuery → 運用jQuery技術(shù)實現(xiàn)表格數(shù)據(jù)的動態(tài)添加與統(tǒng)計

運用jQuery技術(shù)實現(xiàn)表格數(shù)據(jù)的動態(tài)添加與統(tǒng)計

相關(guān)文章發(fā)表評論 來源:本站整理時間:2011/1/26 1:40:26字體大�。�A-A+

作者:佚名點擊:359次評論:0次標簽: jQuery

  • 類型:編程輔助大�。�109KB語言:中文 評分:5.0
  • 標簽:
立即下載
 
圖(1.1)
某物流信息系統(tǒng)中的功能要求如圖1.1所示,表格中每一行代表一筆運送貨物的信息,在錄入每行的計費重量和費率后,要求能按一定的公式,自動計算運送費用,并且能自動統(tǒng)計所有運送貨物的總運費。運送貨物信息的數(shù)據(jù)量(即表格的行數(shù))不定,要求能動態(tài)增加、刪除,即表格的數(shù)據(jù)行數(shù)是動態(tài)可維護的。同時為了方便操作,需要在頁面中能像使用鍵盤的上下左右方向鍵,在錄入的文本框之間進行切換。每行的數(shù)據(jù)有一定的校驗要求,比如單號必須為8位數(shù)字,件數(shù)和重量必須為數(shù)字...
單行貨物信息計算運費不難實現(xiàn),只需要在計費重量和費率的文本框?qū)ο蟮膐nblur事件中,得到費率和計費重量,按照公式計算好運費即可。

總計費用的統(tǒng)計也不難實現(xiàn),遍歷整個表格的所有費用對象,統(tǒng)計其和,將計算結(jié)果放到總計的文本框?qū)ο蠹纯伞?br />
難點在動態(tài)添加整行表格數(shù)據(jù),而且每行數(shù)據(jù)上的各文本框?qū)ο蟮氖录惨獙崿F(xiàn)自動統(tǒng)計和運算,有相當?shù)碾y度。如果使用JavaScript需要調(diào)用Dom對象創(chuàng)建一個<tr>單元格,還需要在tr里面添加10多個單元格<td>對象,每個單元格<td>對象內(nèi)要添加文本框?qū)ο?還需要在文本框?qū)ο笊享憫?yīng)onblur事件進行運費計算,代碼量相當大。

使用jQuery可以大大減輕工作量,在實際開發(fā)中,使用了jQuery的clone(true)函數(shù),該函數(shù)可以創(chuàng)建一個jQury對象的副本,并且參數(shù)為true時,可以復制該元素的所有事件處理函數(shù)。

我們可以在第一行中實現(xiàn)計算運費的運算。然后點增加明細按鈕時,調(diào)用jQuery 的clone(true)函數(shù),建立第一行的副本對象插入到表格下方,由于使用clone(true)可以復制對象的事件處理函數(shù),所以每行中文本框的onblur事件和運費計算函數(shù)也被成功復制,不需再做處理。大大減輕了工作量。
關(guān)鍵代碼

(一)創(chuàng)建克隆單元格對象并添加到表格中

var v=$("#tbin");//得到表格的jquery對象

//所有的數(shù)據(jù)行有一個.MyRow的Class,得到數(shù)據(jù)行的大小

var vcount=$("#tbin tr").filter(".MyRow").size()+1;//表格有多少個數(shù)據(jù)行

var vTr=$("#tbin #trDataRow1"); //得到表格中的第一行數(shù)據(jù)

var vTrClone=vTr.clone(true);//創(chuàng)建第一行的副本對象vTrClone

vTrClone.appendTo(v);//把副本單元格對象添加到表格下方

(二)統(tǒng)計更新總金額

function UpdateTotal()//更新總金額

{

var vTotalMoney=0;//總金額的初始值為0;

var vTable=$("#tbin");//得到表格的jquery對象

var vTotal= vTable.find("#txtTotal") ;//得到總金額對象

var vtxtAfters=vTable.find("#txtMoney");//得到所有計算好的費用對象;

vtxtAfters.each( //使用jQuery的each函數(shù)遍歷每行費用對象,累加成總金額

function(i)

{

var vTempValue=$(this).val();

if(vTempValue=="")

{

vTempValue=0;

}

vTotalMoney=vTotalMoney+parseFloat(vTempValue);//計算總費用

}

)//遍歷結(jié)束

vTotal.val(vTotalMoney); //將總費用顯示到對應(yīng)文本框?qū)ο笾?br />
}

(三)計費重量變化時計算費用,并統(tǒng)計總費用

$("#txtMoneyWeight").bind("change", function()

{

var vTotalMoney=0;//總金額的初始值為0;

var vtxtDetail=$(this);//得到變化的文本框?qū)ο?

var vVal=vtxtDetail.val();

var vtxtAfter=vtxtDetail.parent("td").parent("tr").find("#txtRate");//得到費率;

var vtxtMoney=vtxtDetail.parent("td").parent("tr").find("#txtMoney");//得到費用;

var vMoney=CalculatorMoney(vVal,vtxtAfter.val());//使用公式計算單行運費

vtxtMoney.val(vMoney); //顯示單行運費信息

UpdateTotal(); //調(diào)用函數(shù)統(tǒng)計更新總費用

}); //變化腳本結(jié)束
鍵盤的控制和數(shù)據(jù)的校驗在源程序中有詳細注釋,具體代碼可參考源程序。
    html編輯器
    (73)html編輯器
    我們做網(wǎng)頁的時候最難找的就是編輯器,網(wǎng)上找一個吧,要不是圖片上傳錯誤,就是到處都是錯誤,垃圾太多.大家都需要一個簡單,速度快的.西西為您提供最好用的編輯器一站式下載編輯器定義編輯器指的是一類編輯制作工具,可自定義窗囗,編輯主題索引,可選擇添搜索頁,無任何不自由。編輯器哪個好用小編個人比較喜歡使用和,這兩款編輯器軟件都有不錯的表現(xiàn)。至于編輯器哪個好用,這就要根據(jù)你的個人需求去選擇對應(yīng)的編輯器啦...更多>>
    • UltraEdit-32中文版21.20.1001 中文

      06-29 / 19.5M

      推薦理由:ultraEdit 32 破解版 簡體中文 內(nèi)有安裝說明,完全免費,無試用期的。該軟件功能強大,能打開各種格式的文件
    • pyscripter x642.5.3 官方最新版

      11-10 / 4.7M

      推薦理由:python編輯器,代碼補全、參數(shù)提示補全工具,這個工具其實非常重要,可以大大提高開發(fā)效率,減少出錯。很滿
    • 快手AAuto Studio10.152 綠色中文免

      02-20 / 8.5M

      推薦理由:快手aauto是由一鶴軟件耗時四年開發(fā)新一代編程語言。完美支持靜態(tài)類型、動態(tài)類型,完美支持com、dllapi、re
    • ultraedit64位破解版v22.20.0.49 綠

      03-31 / 37.9M

      推薦理由:UltraEdit是最強大的一款超值文本編輯器!ultraedit64位破解版,適用于Windows64位系統(tǒng)使用,此版為綠色破解
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁設(shè)計軟件,是最優(yōu)秀的可視化網(wǎng)頁設(shè)計工
    • Adobe Dreamweaver CS5官方簡體中文

      05-15 / 436.8M

      推薦理由:Adobe Dreamweaver CS5 軟件使設(shè)計人員和開發(fā)人員能充滿自信地構(gòu)建基于標準的網(wǎng)站。由于同新的 Adobe CS Li

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)