亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js綜合應用實例簡單的表格統計

2019-11-20 22:20:21
字體:
來源:轉載
供稿:網友
在做調查問卷的過程中,遇到一個表格的統計問題,算是需要些js方面的綜合知識,所以記錄下來。

基本需求如下:
 
核心的htm如下:
復制代碼 代碼如下:

<div class="tablebox">
<h2>
<span>(3)2010年市屬疾病預防控制中心信息化建設資金來源及分配情況</span></h2>
<div class="blockB">
<p>
說明:單位:萬元,精確到小數點后1位</p>
</div>
<ul>
<li>
<table border="0" cellspacing="0" cellpadding="0" class="templateTable" width="750px">
<tr>
<td class="tdright" colspan="2">
</td>
<td class="tdcol">
政府財政</td>
<!--<td class="tdcol">
項目經費</td>-->
<td class="tdcol">
單位自籌</td>
<td class="tdcol">
其他資金</td>
<td class="tdcol">
合計</td>
</tr>
<tr>
<td class="tdright width20" rowspan="4">直接支出</td>
<td class="tdright">
軟件</td>
<td class="tdleft">
<input name="text_4780" type="text" id="text_4780" class="width110 digital" /></td>
<td class="tdleft">
<input name="text_4782" type="text" id="text_4782" class="width110 digital" /></td>
<td class="tdleft">
金額:<input name="text_4783" type="text" id="text_4783" class="width90 digital" />
來源:<input type="text" name="text_4784" id="text_4784" class="width90" /></td>
<td class="tdleft">
<input type="text" class="width110" id='82row1' disabled="disabled" />
</td>
</tr>
<tr>
<td class="tdright">
硬件</td>
<td class="tdleft">
<input name="text_4785" type="text" id="text_4785" class="width110 digital" /></td>
<td class="tdleft">
<input name="text_4787" type="text" id="text_4787" class="width110 digital" /></td>
<td class="tdleft">
金額:<input name="text_4788" type="text" id="text_4788" class="width90 digital" />
來源:<input type="text" name="text_4789" id="text_4789" class="width90" /></td>
<td class="tdleft">
<input type="text" id="82row2" class="width110" disabled="disabled" /></td>
</tr>
<tr>
<td class="tdright">
運行維護</td>
<td class="tdleft">
<input name="text_4790" type="text" id="text_4790" class="width110 digital" /></td>
<td class="tdleft">
<input name="text_4792" type="text" id="text_4792" class="width110 digital" /></td>
<td class="tdleft">
金額:<input name="text_4793" type="text" id="text_4793" class="width90 digital" />
來源:<input type="text" name="text_4794" id="text_4794" class="width90" /></td>
<td class="tdleft">
<input type="text" id="82row3" class="width110" disabled="disabled" /></td>
</tr>
<tr>
<td class="tdright">
其他投入</td>
<td class="tdleft">
<input name="text_4795" type="text" id="text_4795" class="width110 digital" /></td>
<td class="tdleft">
<input name="text_4797" type="text" id="text_4797" class="width110 digital" /></td>
<td class="tdleft">
金額:<input name="text_4798" type="text" id="text_4798" class="width90 digital" />
來源:<input type="text" name="text_4799" id="text_4799" class="width90" /></td>
<td class="tdleft">
<input type="text" id="82row4" class="width110" disabled="disabled" /></td>
</tr>
<tr>
<td class="tdright" colspan="2">
經費下撥</td>
<td class="tdleft">
<input name="text_6362" type="text" id="text_6362" class="digital width110" /></td>
<td class="tdleft">
<input name="text_6363" type="text" id="text_6363" class="digital width110" /></td>
<td class="tdleft">
金額:<input name="text_6364" type="text" id="text_6364" class="digital width90" />
來源:<input name="text_6365" type="text" id="text_6365" class="width90" /></td>
<td class="tdleft">
<input type="text" id="82row5" class="width110" disabled="disabled" /></td>
</tr>
<tr>
<td class="tdright" colspan="2">
合計</td>
<td class="tdleft">
<input type="text" id="82col1" title1="surveyTable" disabled="disabled" /></td>
<td class="tdleft">
<input type="text" id="82col3" title1="surveyTable" disabled="disabled" /></td>
<td class="tdleft">
<input type="text" id="82col4" title1="surveyTable" disabled="disabled" /></td>
<td class="tdleft">
<input type="text" id="82sum" title1="surveyTable" disabled="disabled" /></td>
</tr>
</table>
</li>
</ul>
</div>

看到這樣的基本需求,本身并不難,基本思路就是在更新數據后,失去了焦點的同時,更新對應的合計文本框。難點在于獲取需要累加那些文本框的值。

1如果只知道合計的文本框ID如何得到需要累加的文本框編號呢?

先分析行統計,可以發現,行統計需要的文本框和合計的文本框都在同一個tr標簽中,而且都有類digital。例如82row1需要計算的文本框text_4780,text_4782,text_4783

都在同一個tr標簽中,而且類都有digital(這樣就可以排除不需要統計的文本框text_4784)。

所以基本的思路就是根據這個關系去尋找需要統計的文本框,例如對于82row1就需要找到文本框text_4780,text_4782,text_4783。

經過測試的基本js代碼如下:
復制代碼 代碼如下:

function GetOneRowAllChild(totalId)
{
var idList = [];
var tdList=$("#"+totalId).parent('td').parent().children("td");//取統計文本框的父節點td的父節點tr,然后再取tr的子節點,得到同一行的所有td
$.each(tdList, function(i, n){//循環td
var inputs=$(n).children("input[type='text']");//得到td中的文本框
if(inputs.length>0)
{
$.each(inputs, function(j, itemInput){ //循環td中的文本框
var item=$(itemInput);
if(item.hasClass("digital"))//判斷是不是需要的文本框,排除來源列的文本款
{
var id=item.attr("id");
idList.push(id);
}
});
}
});
//var NameList = idList.join(",");
//alert(NameList);
BindBlur(idList,totalId);
}
function BindBlur(idList,totalId)//綁定失去焦點的事件blur
{
$.each(idList, function(j, item){
var id=item;
$("#"+id).blur( function () { updateSum(idList,totalId) } );
});
}
function updateSum(idList,totalId)//更新統計值
{
var sum=0.0;
$.each(idList, function(j, item){
var id=item;
var value=$("#"+id).val();
if($.isNumeric(value))
{
sum+=parseFloat(value);
}
});
$("#"+totalId).val(sum);
}

2有了獲取每一行的的文本框的思路后,在考慮每一列的思路,和獲取每一行的思路基本相同,但在修改的過程中,發現還是有很多不同。

經過測試的代碼如下
復制代碼 代碼如下:

function GetOneColumnAllChild(totalId,index)
{
var idList = [];
var trList=$("#"+totalId).parent('td').parent('tr').parent().children("tr");////取統計文本框的父節點td的父節點tr的父節點table,然后再取table的子節點,得到所有tr
$.each(trList, function(i, n){ //遍歷所有的tr
var tdList=$(n).children("td") //
if(tdList.length>0)
{
var inputindex=0;
$.each(tdList, function(j, item){ //遍歷所有的td
// if(j==index)// 由于<td class="tdright width20" rowspan="4">直接支出</td>,導致如果這樣取數據會出錯,因為第一行多了一個td,其他含都比第一行少了一個td
// {
var inputList=$(item).children("input[type='text']");
if(inputList.length>0) {
$.each(inputList, function(k, iteminput){ //遍歷所有的文本框
var item=$(iteminput);
if(item.hasClass("digital")){
inputindex++;
if(inputindex==index){ //支取指定列的文本框
idList.push(item.attr("id"));
}
}
});//end inputList
}// end if(inputList.length>0)
});// end tdList
} // if(tdList.length>0)
});//end trList
BindBlur(idList,totalId);
//var NameList = idList.join(",");
//alert(NameList);
}

總結:初次遇見此類問題,真的沒有什么比較好的思路。這樣雖然初步算是解決了,但靈活性很小,例如每一個單元格只能有一個需要統計的文本框,多個就會出錯。不過根據現在最簡單如果進行擴展,就會適應更復雜的情況。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产美女91呻吟求| 97精品伊人久久久大香线蕉| 欧美在线一区二区三区四| 懂色av一区二区三区| 亚洲国产精品免费| 久操成人在线视频| www.日韩.com| 精品视频中文字幕| 国产精品视频精品| 亚洲精品xxxx| 亚洲欧洲国产一区| 91精品国产91久久久久久最新| 亚洲va久久久噜噜噜久久天堂| 日韩电影中文字幕| 欧美日韩第一视频| 欧美三级欧美成人高清www| 国内外成人免费激情在线视频网站| 成人av在线天堂| 91中文字幕在线观看| 日韩欧美在线视频观看| 亚洲视频专区在线| 欧美激情2020午夜免费观看| 欧美激情精品久久久久| 久久久久亚洲精品| 久久理论片午夜琪琪电影网| 日韩亚洲在线观看| 中文字幕av一区二区| 亚洲高清在线观看| 国产成人精品亚洲精品| 欧美视频在线观看免费网址| 亚洲香蕉在线观看| 国产精品久久久久高潮| 精品激情国产视频| 欧美性猛交xxxx久久久| 91精品视频免费看| 亚洲www在线| 91精品国产自产在线老师啪| 久久亚洲综合国产精品99麻豆精品福利| 高清日韩电视剧大全免费播放在线观看| 久久亚洲综合国产精品99麻豆精品福利| 91在线免费视频| 在线看日韩欧美| 欧美在线日韩在线| 欧美激情视频三区| 欧洲成人免费视频| 日韩av免费在线看| 亚洲国产欧美日韩精品| 欧洲成人午夜免费大片| 国产精品男人爽免费视频1| 亚洲老板91色精品久久| 欧美激情日韩图片| 日本高清不卡的在线| 日韩av网址在线观看| 亚洲午夜精品视频| 国内精品小视频| 亚洲成人激情在线| 亚洲网站视频福利| 国产精品第三页| 这里只有精品久久| 久久免费精品日本久久中文字幕| 欧美电影免费观看高清| 精品国产乱码久久久久久婷婷| 色偷偷av一区二区三区| 欧美电影免费播放| 中文字幕一区二区精品| 亚洲第一网站男人都懂| 亚洲第一区在线观看| 最近2019中文字幕第三页视频| 久久99精品久久久久久琪琪| 亚洲成人黄色网| 色在人av网站天堂精品| 国产一区二区在线免费视频| 亚洲免费电影在线观看| 欧美成人黑人xx视频免费观看| 欧美日韩国产成人在线| 久久久久久国产精品久久| 亚洲人成网7777777国产| 韩剧1988免费观看全集| 97国产真实伦对白精彩视频8| 亚洲第一区中文字幕| 九九久久国产精品| 国内精品久久久久影院优| 国产精品女人久久久久久| 国产美女扒开尿口久久久| 日韩精品中文字幕在线播放| 国产精品欧美在线| 精品国产乱码久久久久久天美| 成人做爽爽免费视频| 国产z一区二区三区| 欧美精品成人91久久久久久久| 美日韩精品免费视频| 狠狠干狠狠久久| 亚洲国产精品免费| 国产精品第100页| 欧美久久精品午夜青青大伊人| 亚洲精品电影久久久| 亚洲影院色无极综合| 亚洲老板91色精品久久| 国产精品福利片| 精品久久久久久| 91青草视频久久| 萌白酱国产一区二区| 欧美在线视频在线播放完整版免费观看| 亚洲成avwww人| 91视频国产高清| 日韩av片永久免费网站| 综合网中文字幕| 38少妇精品导航| 97在线日本国产| 国产精品久久av| 国产精品免费视频久久久| 亚洲mm色国产网站| 欧美性videos高清精品| 色青青草原桃花久久综合| 北条麻妃一区二区在线观看| 91九色精品视频| 亚洲精品98久久久久久中文字幕| 国产精品视频地址| 中文字幕久久精品| 亚洲视频在线观看网站| 国产欧美日韩91| 国产99久久精品一区二区永久免费| 欧美视频一二三| 久久成年人视频| 国产成人精品一区二区三区| 色综合久久精品亚洲国产| 夜夜嗨av一区二区三区四区| 亚洲美女精品成人在线视频| 国产精品黄页免费高清在线观看| 欧美激情精品久久久久久大尺度| 国产欧美 在线欧美| 91久久久久久久久久久| 久久久午夜视频| 亚洲成人激情图| 欧美黑人极品猛少妇色xxxxx| 亚洲另类欧美自拍| 国产精品视频最多的网站| 亚洲欧美精品在线| 久久影院在线观看| 最近更新的2019中文字幕| 亚洲成人网在线| 久久久久久久久久久91| 成人亚洲综合色就1024| 久久精品国产一区二区电影| 久久久久久久久久国产| 国产美女扒开尿口久久久| 亚洲欧美一区二区三区在线| 久久久亚洲影院你懂的| 68精品国产免费久久久久久婷婷| 26uuu另类亚洲欧美日本一| 亚洲精品动漫久久久久| 热99在线视频| 欧美电影院免费观看| 久久久人成影片一区二区三区| 欧美日韩另类字幕中文| 国产成人精品av| 国产aⅴ夜夜欢一区二区三区| 色婷婷综合久久久久中文字幕1| 性色av一区二区三区免费| 欧美亚洲视频在线观看| 久久久久成人精品| 在线看片第一页欧美| 免费av在线一区| 日本国产欧美一区二区三区|