頁(yè)面 table 數(shù)據(jù)收集
Posted on 2008-07-21 17:12 G_G 閱讀(1397) 評(píng)論(0) 編輯 收藏 所屬分類: javascript 、HTML
收集javascript
<html>
<head>
</head>
<body>
<table?border>
????
????<tr?>
????????<td>指令</td>
????????<td>統(tǒng)計(jì)</td>????
????</tr>
????
??<!--?通過(guò)?后臺(tái)遍歷數(shù)據(jù)出來(lái)時(shí)?tr?標(biāo)識(shí)?name='_trdata'?-->
????<tr?name='_trdata'>
????????<td?name="_comm">234</td>
????????<td?name="_count">1</td>????
????</tr>
????<tr?name='_trdata'>
????????<td?name="_comm">1234</td>
????????<td?name="_count">2</td>????
????</tr>
????<tr?name='_trdata'>
????????<td?name="_comm">1256</td>
????????<td?name="_count">9</td>????
????</tr>
</table>
<input?id="t1"?type="text"?/>
<input?type="button"?value="頁(yè)面數(shù)據(jù)收集"?
????????????????????onclick="numSum(?document.getElementById('t1').value,'ss1');">?
結(jié)果:<span?id="ss1"?/>
</body>
<script?type="text/javascript">
????/*?startRegx
????*????E.g??3P45?->?3P4501?
????*???E.g??3P45;MAXAM?->?3P4509
?MAXAM1
?????
????*?收集方法
????*/?
????function?numSum(startRegx,strTextId){
????????var?sum?=?0?;
????????
????????//準(zhǔn)備??匹配正則
????????var?regxStrs?=?startRegx.split(";");
????????var?regxs?=??new?Array(regxStrs.length);
????????for(var?i=0;i<regxStrs.length;i++){
????????????regxs[i]?=?new?RegExp("^"+regxStrs[i],?'');
????????}
????????
????????//得到需要的?tr?
????????var?trs?=?document.getElementsByName('_trdata');
????????
????????//遍歷?tr??
????????for(var?i=0;i<trs.length;i++){
????????????trs[i].style.backgroundColor?=?"";
????????????
????????????//得到全部?td?
????????????var?comm?=?getValusByObjectChildName(trs[i],'_comm');
????????????var?count?=?getValusByObjectChildName(trs[i],'_count');
????????????if(??comm?==?null??)?continue?;
????????????
????????????for(var?k=0;k<regxs.length;k++?){
????????????????if(?regxs[k].test(?comm?)){
????????????????????if(?!?isNaN(?count?)?){
?????????????????????????trs[i].style.backgroundColor?=?"#00cccc";
?????????????????????????sum?+=?parseInt(?count?)?;
????????????????????}
????????????????}
????????????}
????????}
????
????????document.getElementById(strTextId).innerHTML?=?sum?;
????}
?? //收集工具方法
?? function??getValusByObjectChildName(fobj,cName){
????????????if(?fobj==null?||?fobj.firstChild==null?)?
????????????????????return?null?;
????????????
??????????var?cns?=?fobj.childNodes?;
??????????
??????????for(var?j=0;j<cns.length;j++){
??????????????if(?cns[j].getAttribute?&&??cns[j].getAttribute('name')==cName?){
??????????????????return?cns[j].firstChild.nodeValue?;
??????????????}
??????????}
??????????return?null?;
????}
</script>
</html>
<head>
</head>
<body>
<table?border>
????
????<tr?>
????????<td>指令</td>
????????<td>統(tǒng)計(jì)</td>????
????</tr>
????
??<!--?通過(guò)?后臺(tái)遍歷數(shù)據(jù)出來(lái)時(shí)?tr?標(biāo)識(shí)?name='_trdata'?-->
????<tr?name='_trdata'>
????????<td?name="_comm">234</td>
????????<td?name="_count">1</td>????
????</tr>
????<tr?name='_trdata'>
????????<td?name="_comm">1234</td>
????????<td?name="_count">2</td>????
????</tr>
????<tr?name='_trdata'>
????????<td?name="_comm">1256</td>
????????<td?name="_count">9</td>????
????</tr>
</table>
<input?id="t1"?type="text"?/>
<input?type="button"?value="頁(yè)面數(shù)據(jù)收集"?
????????????????????onclick="numSum(?document.getElementById('t1').value,'ss1');">?
結(jié)果:<span?id="ss1"?/>
</body>
<script?type="text/javascript">
????/*?startRegx
????*????E.g??3P45?->?3P4501?

????*???E.g??3P45;MAXAM?->?3P4509


????*?收集方法
????*/?
????function?numSum(startRegx,strTextId){
????????var?sum?=?0?;
????????
????????//準(zhǔn)備??匹配正則
????????var?regxStrs?=?startRegx.split(";");
????????var?regxs?=??new?Array(regxStrs.length);
????????for(var?i=0;i<regxStrs.length;i++){
????????????regxs[i]?=?new?RegExp("^"+regxStrs[i],?'');
????????}
????????
????????//得到需要的?tr?
????????var?trs?=?document.getElementsByName('_trdata');
????????
????????//遍歷?tr??
????????for(var?i=0;i<trs.length;i++){
????????????trs[i].style.backgroundColor?=?"";
????????????
????????????//得到全部?td?
????????????var?comm?=?getValusByObjectChildName(trs[i],'_comm');
????????????var?count?=?getValusByObjectChildName(trs[i],'_count');
????????????if(??comm?==?null??)?continue?;
????????????
????????????for(var?k=0;k<regxs.length;k++?){
????????????????if(?regxs[k].test(?comm?)){
????????????????????if(?!?isNaN(?count?)?){
?????????????????????????trs[i].style.backgroundColor?=?"#00cccc";
?????????????????????????sum?+=?parseInt(?count?)?;
????????????????????}
????????????????}
????????????}
????????}
????
????????document.getElementById(strTextId).innerHTML?=?sum?;
????}
?? //收集工具方法
?? function??getValusByObjectChildName(fobj,cName){
????????????if(?fobj==null?||?fobj.firstChild==null?)?
????????????????????return?null?;
????????????
??????????var?cns?=?fobj.childNodes?;
??????????
??????????for(var?j=0;j<cns.length;j++){
??????????????if(?cns[j].getAttribute?&&??cns[j].getAttribute('name')==cName?){
??????????????????return?cns[j].firstChild.nodeValue?;
??????????????}
??????????}
??????????return?null?;
????}
</script>
</html>