对div循环。当tp=1时,按dt查找,将月份和年份相同的日期的amt相加;当tp=2时,将月份和年份相同的p相加。麻烦高手帮忙了。谢谢了先!
<div dt="2000-03-10" tp="1" amt="0.0555" p="1" /> 
 <div dt="2000-06-16" tp="1" amt="0.0776" p="3" /> 
 <div dt="2000-09-15" tp="1" amt="0.0712" p="2" /> 
 <div dt="2000-12-15" tp="1" amt="0.0862" p="3" />
 <div dt="2000-12-15" tp="2" amt="1.005" p="5" /> 
 <div dt="2001-03-16" tp="1" amt="0.0579" p="4" />
 <div dt="2001-06-15" tp="1" amt="0.0651" p="4" />
 <div dt="2001-09-20" tp="1" amt="0.0629" p="3" />
 <div dt="2001-09-20" tp="2" amt="0.352" p="5" /> 
 <div dt="2001-12-21" tp="2" amt="0.019" p="3" /> 
 <div dt="2001-12-21" tp="1" amt="0.0553" p="2" />
 <div dt="2002-03-15" tp="1" amt="0.0414" p="1" />
 <div dt="2002-06-14" tp="1" amt="0.0517" p="5" />
 <div dt="2002-09-13" tp="1" amt="0.0496" p="3" />
 <div dt="2002-12-20" tp="1" amt="0.054" p="2" />
 <div dt="2003-03-14" tp="1" amt="0.031" p="3" />
 <div dt="2003-06-13" tp="1" amt="0.0335" p="3" /> 
 <div dt="2003-09-12" tp="1" amt="0.0316" p="4" /> 
 <div dt="2003-12-19" tp="1" amt="0.0522" p="1" /> 
 <div dt="2004-03-12" tp="1" amt="0.0274" p="1" /> 
 <div dt="2004-06-14" tp="1" amt="0.0411" p="2" /> 
 <div dt="2004-09-10" tp="1" amt="0.0397" p="2" /> 
 <div dt="2004-12-17" tp="1" amt="0.0789" p="2" /> 
 <div dt="2004-12-17" tp="2" amt="0.648" p="3" /> 

解决方案 »

  1.   

    javascript:
    var divs = document.getElementByTagName("div");
    for(i=0;i<divs.length;i++)
    {
        
    }
    不过写到这,感觉没明白你的需求.
      

  2.   

    已经按照日期排好序了。现在要根据tp为1 和为2 的情况分类。然后tp==1时,将日期的月份和年份相同的amt值加起来。tp==2时,将日期和年份相同的p值加起来。给的东西不完整。同一年的同一个月但不同日期的纪录可能有多个。
      

  3.   

    也会出现中间有几个月没有记录。这样的话。这几个月的amt or p值就赋0。最后的目的是根据日期画图。所以所有的月份都要连续。
      

  4.   

    <script>
    function sum()
    {
      var divs = document.getElementsByTagName("div");
      var ary=new Array();
      for(i=0;i<divs.length;i++)
      {
      var dt=divs[i].getAttribute("dt").split("-");
      var tp=divs[i].getAttribute("tp");
      var amt=eval(divs[i].getAttribute("amt"));
      var flg=true;
      for(var j=0;j<ary.length;j++)
      {
        var tmp=ary[j][0].split("-");
        if(tmp[0]==dt[0] &tmp[1]==dt[1]& ary[j][1]==tp)
        {
          ary[j][2]+=amt;
          flg=false;
          break;
        }
      }
      if(flg)ary[ary.length]=new Array(dt[0]+"-"+dt[1],tp,amt);
    }
    //输出结果
    for(var i=0;i<ary.length;i++)
    {
     document.write("<br>"+ary[i][0]+"<-->"+ary[i][1]+"<-->"+ary[i][2]);
    }}
    </script>
    //打印结果
    2000-03<-->1<-->0.0555
    2000-06<-->1<-->0.0776
    2000-09<-->1<-->0.0712
    2000-12<-->1<-->0.0862
    2000-12<-->2<-->1.005
    2001-03<-->1<-->0.0579
    2001-06<-->1<-->0.0651
    2001-09<-->1<-->0.0629
    2001-09<-->2<-->0.352
    2001-12<-->2<-->0.019
    2001-12<-->1<-->0.0553
    2002-03<-->1<-->0.0414
    2002-06<-->1<-->0.0517
    2002-09<-->1<-->0.0496
    2002-12<-->1<-->0.054
    2003-03<-->1<-->0.031
    2003-06<-->1<-->0.0335
    2003-09<-->1<-->0.0316
    2003-12<-->1<-->0.0522
    2004-03<-->1<-->0.0274
    2004-06<-->1<-->0.0411
    2004-09<-->1<-->0.0397
    2004-12<-->1<-->0.0789
    2004-12<-->2<-->0.648
      

  5.   

    表像这样: 
     <div dt="2002-03-15" tp="1" amt="0.0414" p="" /> 
      <div dt="2002-06-14" tp="1" amt="0.0517" p="" /> 
      <div dt="2002-09-13" tp="1" amt="0.0496" p="" /> 
      <div dt="2002-12-20" tp="1" amt="0.054" p="" /> 
      <div dt="2003-03-14" tp="1" amt="0.031" p="" /> 
      <div dt="2003-06-13" tp="1" amt="0.0335" p="" /> 
      <div dt="2003-09-12" tp="1" amt="0.0316" p="" /> 
      <div dt="2003-12-19" tp="1" amt="0.0522" p="" /> 
      <div dt="2004-03-12" tp="1" amt="0.0274" p="" /> 
      <div dt="2004-06-14" tp="1" amt="0.0411" p="" /> 
      <div dt="2004-09-10" tp="1" amt="0.0397" p="" /> 
      <div dt="2004-12-17" tp="1" amt="0.0789" p="" /> 
      <div dt="2004-12-17" tp="2" amt="0.648" p="" /> 
      <div dt="2005-03-11" tp="1" amt="0.0308" p="" /> 
      <div dt="2005-06-10" tp="1" amt="0.0413" p="" /> 
      <div dt="2005-09-16" tp="1" amt="0.0409" p="" /> 
      <div dt="2005-12-16" tp="1" amt="0.0497" p="" /> 
      <div dt="2005-12-16" tp="2" amt="0.589" p="" /> 
      <div dt="2006-03-10" tp="1" amt="0.0338" p="" /> 
      <div dt="2006-06-16" tp="1" amt="0.0425" p="" /> 
      <div dt="2006-09-15" tp="1" amt="0.0393" p="10.44" /> 
    我做的部分的结果。还不完善。看id。它表示了月份的变化。没有的月份跳过也可以的。
    <data id=\"1\">0.0414</data>
    <data id=\"4\">0.0517</data>
    <data id=\"7\">0.0496</data>
    <data id=\"10\">0.054</data>
    <data id=\"13\">0.031</data>
    <data id=\"16\">0.0335</data>
    <data id=\"19\">0.0316</data>
    <data id=\"22\">0.0522</data>
    <data id=\"25\">0.0274</data>
    <data id=\"28\">0.0411</data>
    <data id=\"31\">0.0397</data>
    <data id=\"34\">0.0789</data>
    <data id=\"37\">0.0308</data>
    <data id=\"40\">0.0413</data>
    <data id=\"43\">0.0409</data>
    <data id=\"46\">0.0497</data>
    <data id=\"49\">0.0338</data>
    <data id=\"52\">0.0425</data>
      

  6.   

    对于tp==1是从2000-03开始打印
    那对于tp==2是从2000-03还是从2000-12开始打印?
      

  7.   

    按年安月份循环吧
    然后就根据document.getElementsByTagName("div")来找值吧
    如果满足条件的的为null,则说明没有值,赋予值0
    具体前面的兄弟代码都写得差不多了
      

  8.   

    //输出结果
    var syear=(ary[0][0].split("-"))[0];//起始年
    var smonth=(ary[0][0].split("-"))[1];//起始月
    var eyear=(ary[ary.length-1][0].split("-"))[0];//终止年
    var emonth=(ary[ary.length-1][0].split("-"))[1];//终止月
    var tmp=smonth;
    document.write("-----------<br>起始年月"+syear+"-"+smonth+"<br>终止年月"+eyear+"-"+emonth+"<br>-----------");
    for(var i=syear;i < eyear+1;i++)
    { for(var j=tmp;j<=12;j++)
    {
    var flg1=true;var flg2=true;
    if(i>eyear)break;
    if(i==eyear & j>emonth)break;
    var tmon=((""+j).length==2)?j:"0"+j;
    for(var k=0;k < ary.length;k++)
    {
    if(ary[k][1]==1&&ary[k][0]==(i+"-"+tmon))
    {
    document.write("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    //alert("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    flg1=false;
    break;
    }
    if(ary[k][2]==1&&ary[k][0]==(i+"-"+tmon))
    {
    document.write("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    flg2=false;
    break;
    }}
    if(flg1){document.write("<br>"+i+"-"+tmon+"<-->"+1+"<-->"+0);}
    if(flg2){document.write("<br>"+i+"-"+tmon+"<-->"+2+"<-->"+0);}
    }
    tmp=1;
    }
      

  9.   

    //打印结果
    -----------
    起始年月2000-03
    终止年月2004-12
    -----------
    2000-03<-->1<-->0.0555
    2000-03<-->2<-->0
    2000-04<-->1<-->0
    2000-04<-->2<-->0
    2000-05<-->1<-->0
    2000-05<-->2<-->0
    2000-06<-->1<-->0.0776
    2000-06<-->2<-->0
    2000-07<-->1<-->0
    2000-07<-->2<-->0
    2000-08<-->1<-->0
    2000-08<-->2<-->0
    2000-09<-->1<-->0.0712
    2000-09<-->2<-->0
    2000-10<-->1<-->0
    2000-10<-->2<-->0
    2000-11<-->1<-->0
    2000-11<-->2<-->0
    2000-12<-->1<-->0.0862
    2000-12<-->2<-->0
    2001-01<-->1<-->0
    2001-01<-->2<-->0
    2001-02<-->1<-->0
    2001-02<-->2<-->0
    2001-03<-->1<-->0.0579
    2001-03<-->2<-->0
    2001-04<-->1<-->0
    2001-04<-->2<-->0
    2001-05<-->1<-->0
    2001-05<-->2<-->0
    2001-06<-->1<-->0.0651
    2001-06<-->2<-->0
    2001-07<-->1<-->0
    2001-07<-->2<-->0
    2001-08<-->1<-->0
    2001-08<-->2<-->0
    2001-09<-->1<-->0.0629
    2001-09<-->2<-->0
    2001-10<-->1<-->0
    2001-10<-->2<-->0
    2001-11<-->1<-->0
    2001-11<-->2<-->0
    2001-12<-->1<-->0.0553
    2001-12<-->2<-->0
    2002-01<-->1<-->0
    2002-01<-->2<-->0
    2002-02<-->1<-->0
    2002-02<-->2<-->0
    2002-03<-->1<-->0.0414
    2002-03<-->2<-->0
    2002-04<-->1<-->0
    2002-04<-->2<-->0
    2002-05<-->1<-->0
    2002-05<-->2<-->0
    2002-06<-->1<-->0.0517
    2002-06<-->2<-->0
    2002-07<-->1<-->0
    2002-07<-->2<-->0
    2002-08<-->1<-->0
    2002-08<-->2<-->0
    2002-09<-->1<-->0.0496
    2002-09<-->2<-->0
    2002-10<-->1<-->0
    2002-10<-->2<-->0
    2002-11<-->1<-->0
    2002-11<-->2<-->0
    2002-12<-->1<-->0.054
    2002-12<-->2<-->0
    2003-01<-->1<-->0
    2003-01<-->2<-->0
    2003-02<-->1<-->0
    2003-02<-->2<-->0
    2003-03<-->1<-->0.031
    2003-03<-->2<-->0
    2003-04<-->1<-->0
    2003-04<-->2<-->0
    2003-05<-->1<-->0
    2003-05<-->2<-->0
    2003-06<-->1<-->0.0335
    2003-06<-->2<-->0
    2003-07<-->1<-->0
    2003-07<-->2<-->0
    2003-08<-->1<-->0
    2003-08<-->2<-->0
    2003-09<-->1<-->0.0316
    2003-09<-->2<-->0
    2003-10<-->1<-->0
    2003-10<-->2<-->0
    2003-11<-->1<-->0
    2003-11<-->2<-->0
    2003-12<-->1<-->0.0522
    2003-12<-->2<-->0
    2004-01<-->1<-->0
    2004-01<-->2<-->0
    2004-02<-->1<-->0
    2004-02<-->2<-->0
    2004-03<-->1<-->0.0274
    2004-03<-->2<-->0
    2004-04<-->1<-->0
    2004-04<-->2<-->0
    2004-05<-->1<-->0
    2004-05<-->2<-->0
    2004-06<-->1<-->0.0411
    2004-06<-->2<-->0
    2004-07<-->1<-->0
    2004-07<-->2<-->0
    2004-08<-->1<-->0
    2004-08<-->2<-->0
    2004-09<-->1<-->0.0397
    2004-09<-->2<-->0
    2004-10<-->1<-->0
    2004-10<-->2<-->0
    2004-11<-->1<-->0
    2004-11<-->2<-->0
    2004-12<-->1<-->0.0789
    2004-12<-->2<-->0
      

  10.   

    if(ary[k][2]==1&&ary[k][0]==(i+"-"+tmon))
    {
    document.write("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    flg2=false;
    break;
    }
    改成
    if(ary[k][1]==2&&ary[k][0]==(i+"-"+tmon))
    {
    document.write("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    flg2=false;
    break;
    }
    //打印结果
    -----------
    起始年月2000-03
    终止年月2004-12
    -----------
    2000-03<-->1<-->0.0555
    2000-03<-->2<-->0
    2000-04<-->1<-->0
    2000-04<-->2<-->0
    2000-05<-->1<-->0
    2000-05<-->2<-->0
    2000-06<-->1<-->0.0776
    2000-06<-->2<-->0
    2000-07<-->1<-->0
    2000-07<-->2<-->0
    2000-08<-->1<-->0
    2000-08<-->2<-->0
    2000-09<-->1<-->0.0712
    2000-09<-->2<-->0
    2000-10<-->1<-->0
    2000-10<-->2<-->0
    2000-11<-->1<-->0
    2000-11<-->2<-->0
    2000-12<-->1<-->0.0862
    2000-12<-->2<-->0
    2001-01<-->1<-->0
    2001-01<-->2<-->0
    2001-02<-->1<-->0
    2001-02<-->2<-->0
    2001-03<-->1<-->0.0579
    2001-03<-->2<-->0
    2001-04<-->1<-->0
    2001-04<-->2<-->0
    2001-05<-->1<-->0
    2001-05<-->2<-->0
    2001-06<-->1<-->0.0651
    2001-06<-->2<-->0
    2001-07<-->1<-->0
    2001-07<-->2<-->0
    2001-08<-->1<-->0
    2001-08<-->2<-->0
    2001-09<-->1<-->0.0629
    2001-09<-->2<-->0
    2001-10<-->1<-->0
    2001-10<-->2<-->0
    2001-11<-->1<-->0
    2001-11<-->2<-->0
    2001-12<-->2<-->0.019
    2001-12<-->1<-->0
    2002-01<-->1<-->0
    2002-01<-->2<-->0
    2002-02<-->1<-->0
    2002-02<-->2<-->0
    2002-03<-->1<-->0.0414
    2002-03<-->2<-->0
    2002-04<-->1<-->0
    2002-04<-->2<-->0
    2002-05<-->1<-->0
    2002-05<-->2<-->0
    2002-06<-->1<-->0.0517
    2002-06<-->2<-->0
    2002-07<-->1<-->0
    2002-07<-->2<-->0
    2002-08<-->1<-->0
    2002-08<-->2<-->0
    2002-09<-->1<-->0.0496
    2002-09<-->2<-->0
    2002-10<-->1<-->0
    2002-10<-->2<-->0
    2002-11<-->1<-->0
    2002-11<-->2<-->0
    2002-12<-->1<-->0.054
    2002-12<-->2<-->0
    2003-01<-->1<-->0
    2003-01<-->2<-->0
    2003-02<-->1<-->0
    2003-02<-->2<-->0
    2003-03<-->1<-->0.031
    2003-03<-->2<-->0
    2003-04<-->1<-->0
    2003-04<-->2<-->0
    2003-05<-->1<-->0
    2003-05<-->2<-->0
    2003-06<-->1<-->0.0335
    2003-06<-->2<-->0
    2003-07<-->1<-->0
    2003-07<-->2<-->0
    2003-08<-->1<-->0
    2003-08<-->2<-->0
    2003-09<-->1<-->0.0316
    2003-09<-->2<-->0
    2003-10<-->1<-->0
    2003-10<-->2<-->0
    2003-11<-->1<-->0
    2003-11<-->2<-->0
    2003-12<-->1<-->0.0522
    2003-12<-->2<-->0
    2004-01<-->1<-->0
    2004-01<-->2<-->0
    2004-02<-->1<-->0
    2004-02<-->2<-->0
    2004-03<-->1<-->0.0274
    2004-03<-->2<-->0
    2004-04<-->1<-->0
    2004-04<-->2<-->0
    2004-05<-->1<-->0
    2004-05<-->2<-->0
    2004-06<-->1<-->0.0411
    2004-06<-->2<-->0
    2004-07<-->1<-->0
    2004-07<-->2<-->0
    2004-08<-->1<-->0
    2004-08<-->2<-->0
    2004-09<-->1<-->0.0397
    2004-09<-->2<-->0
    2004-10<-->1<-->0
    2004-10<-->2<-->0
    2004-11<-->1<-->0
    2004-11<-->2<-->0
    2004-12<-->1<-->0.0789
    2004-12<-->2<-->0
      

  11.   

    function sum()
    {
    var divs = document.getElementsByTagName("div");
    var ary=new Array();
    for(i=0;i<divs.length;i++)
    {
    var dt=divs[i].getAttribute("dt");
    dt=dt.substr(0,dt.length-3);
    var tp=divs[i].getAttribute("tp");
    var amt=eval(divs[i].getAttribute("amt"));
    var flg=true;
    for(var j=0;j<ary.length;j++)
    {
    if(ary[j][0]==dt& ary[j][1]==tp)
    {
    ary[j][2]+=amt;
    flg=false;
    break;
    }
    }
    if(flg)ary[ary.length]=new Array(dt,tp,amt);
    }
    //输出结果
    var syear=(ary[0][0].split("-"))[0];//起始年
    var smonth=(ary[0][0].split("-"))[1];//起始月
    var eyear=(ary[ary.length-1][0].split("-"))[0];//终止年
    var emonth=(ary[ary.length-1][0].split("-"))[1];//终止月
    var tmp=smonth;
    document.write("-----------<br>起始年月"+syear+"-"+smonth+"<br>终止年月"+eyear+"-"+emonth+"<br>-----------");
    for(var i=syear;i < eyear+1;i++)
    { for(var j=tmp;j<=12;j++)
    {
    var flg1=true;
    var flg2=true;
    if(i>eyear)break;
    if(i==eyear & j>emonth)break;
    var tmon=((""+j).length==2)?j:"0"+j;
    for(var k=0;k < ary.length;k++)
    {
    if(ary[k][1]==1&&ary[k][0]==(i+"-"+tmon))
    {
    document.write("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    flg1=false;
    }
    if(ary[k][1]==2&&ary[k][0]==(i+"-"+tmon))
    {
    document.write("<br>"+ary[k][0]+"<-->"+ary[k][1]+"<-->"+ary[k][2]);
    flg2=false;
    }
    if(!flg1&!flg2)break;}
    if(flg1){document.write("<br>"+i+"-"+tmon+"<-->"+1+"<-->"+0);}
    if(flg2){document.write("<br>"+i+"-"+tmon+"<-->"+2+"<-->"+0);}
    }
    tmp=1;
    }