从数据库中取出1组数据显示,我做了一个简单的table,每个输入域的id是自动增长的,a001_input,a002_input.......,现在我在每个分类(分类是固定的)中输入一个整数,按下submit后,每个分类对应的其他行,根据自己的种类输入的数据进行乘法运算(倍数在table里有),并显示的table里。比如说,我在类型1中输入2,  
提交后,对应分类1的其他行,根据倍数运算、显示。  请教高手们  该怎么实现??  
最好能写个demo,万分感谢!!(感觉先取table的行数,并判断分类,进行循环。)  <table id="table1" width="549" border="1">
  <tr>
    <td colspan="2" bgcolor="#0000FF">分类1</td>
  </tr>
  
  <tr type=type1>
    <td width="146">请输入:</td>
    <td><input type="text"  id="a001_input" name="a001_input"></td>
  </tr>
  <tr type=type1>
  <td>1倍</td>
    <td width="387"><input type="text"  id="a002_input" name="a002_input"></td>
  </tr>
    <tr type=type1>
  <td>2倍</td>
    <td><input type="text"  id="a003_input" name="a003_input"></td>
  </tr>
    
    <tr type=type2>
      <td colspan="2" bgcolor="#0000FF">分类2</td>
    </tr>
  <tr type=type2>
       <td>请输入:</td>
       <td><input type="text"  id="a004_input" name="a004_input"></td>
  </tr>
    <tr>
      <td>3倍</td>
      <td><input type="text"  id="a005_input" name="a005_input"></td>
  </tr>
    <tr type=type3>
      <td colspan="2" bgcolor="#0000FF">分类3</td>
    </tr>
  <tr type=type3>
    <td>请输入:</td>
    <td><input type="text"  id="a006_input" name="a006_input"></td>
  </tr>
   
  <tr type=type3>
      <td>2倍</td>
      <td><input type="text"  id="a007_input" name="a007_input"></td>
  </tr>
    <tr>
      <td>5倍</td>
      <td><input type="text"  id="a008_input" name="a008_input"></td>
  </tr>
  <tr type=type3>
      <td>1倍</td>
      <td><input type="text"  id="a009_input" name="a009_input"></td>
  </tr>
</table>
<input type="button" value="submit"  />

解决方案 »

  1.   

    <script language="javascript">
    function cal(td)//输入当前的单元格
    {
        var inputTR = td.parentElement;//获取单元格的tr
        
        //直到获取 单元格的最近一个 输入提示tr
        while (inputTR.childNodes[0].innerText != "请输入:")
        {
            inputTR = inputTR.previousSibling;
        }
        
        //获取输入的数
        var inputValue = parseInt(inputTR.childNodes[1].firstChild.value);
        
        //根据倍数计算结果
        var res = parseInt(td.previousSibling.innerText) * inputValue;    td.firstChild.value = res;
    }//计算所有
    function getAll()
    {
        var tds = document.getElementsByTagName("td");
        for (var i = 0; i < tds.length; i++)
        {
              if (tds[i].childNodes[0].type == "text" && tds[i].previousSibling.innerText != "请输入:")
              {
                     cal(tds[i]);
              }  
        }
    }
    </script>//button里的调用
    <input type="button" value="submit" onclick="getAll()"  />
      

  2.   

    楼上的大哥,在firefox里 不支持inputTR.childNodes[0].innerText 这句话.
    请高手们 帮修改1下.小弟改了几次,但都不理想...谢谢谢谢!
      

  3.   

    给你个思路看看是不是要这个效果!
    <table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#999999" id="t1">
      <tr>
        <td height="27" align="center" bgcolor="#CCCCCC">商品名</td>
        <td align="center" bgcolor="#CCCCCC">数量</td>
        <td align="center" bgcolor="#CCCCCC">价格</td>
        <td align="center" bgcolor="#CCCCCC">总价</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFFFF"><input name="shangpin" type="text" class="sl2" id="shangpin" /></td>
        <td align="center" bgcolor="#FFFFFF"><input name="shuliang1" type="text" class="sl2" id="shuliang1"  style="width:60px" onblur="suanqian()" /></td>
        <td align="center" bgcolor="#FFFFFF"><input name="danjia1" type="text" class="sl2" id="danjia1"  style="width:60px" onblur="suanqian()" /></td>
        <td align="center" bgcolor="#FFFFFF"><input name="jine1" type="text" class="sl2" id="jine1"  style="width:60px"/></td>
        
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFFFF"><input name="shangpin2" type="text" class="sl2" id="shangpin2" /></td>
        <td align="center" bgcolor="#FFFFFF"><input name="shuliang2" type="text" class="sl2" id="shuliang2"  style="width:60px" onblur="suanqian()"/></td>
        <td align="center" bgcolor="#FFFFFF"><input name="danjia2" type="text" class="sl2" id="danjia2"  style="width:60px" onblur="suanqian()"/></td>
        <td align="center" bgcolor="#FFFFFF"><input name="jine2" type="text" class="sl2" id="jine2"  style="width:60px"/></td>
        
      </tr>
      <tr>
        <td align="center" bgcolor="#FFFFFF"><input name="shangpin3" type="text" class="sl2" id="shangpin3" /></td>
        <td align="center" bgcolor="#FFFFFF"><input name="shuliang3" type="text" class="sl2" id="shuliang3"  style="width:60px" onblur="suanqian()"/></td>
        <td align="center" bgcolor="#FFFFFF"><input name="danjia3" type="text" class="sl2" id="danjia3"  style="width:60px" onblur="suanqian()"/></td>
        <td align="center" bgcolor="#FFFFFF"><input name="jine3" type="text" class="sl2" id="jine3"  style="width:60px"/></td>
        
      </tr>
      <tr>
        <td colspan="3" align="center" bgcolor="#CCCCCC">小计</td>
        <td align="center" bgcolor="#FFFFFF">
            <input name="xiaoji" type="text" class="sl2" id="xiaoji"  style="width:60px"/></td>
      </tr>
      <tr>
        <td colspan="3" align="center" bgcolor="#CCCCCC">税</td>
        <td align="center" bgcolor="#FFFFFF"><input name="sui" type="text" class="sl2" id="sui"  style="width:60px" value="0.5%"/></td>
      </tr>
      <tr>
        <td colspan="3" align="center" bgcolor="#CCCCCC">合计</td>
        <td align="center" bgcolor="#FFFFFF"><input name="heji" type="text" class="sl2" id="heji"  style="width:60px"/></td>
      </tr>
    </table>
    <script language="JavaScript" type="text/javascript">
    function suanqian()
    {var hao=t1.rows.length;
    var _shui= 1-0.005;
    var _xiaoji=0;
    var _heji = 0;
    for(var i=1;i<hao-3;i++)
    {
    _shuliang=parseFloat(document.getElementById("shuliang"+i).value);
    _danjia=parseFloat(document.getElementById("danjia"+i).value);
    _zongjia=_shuliang*_danjia;
    _xiaoji+=_zongjia;
    document.getElementById("jine"+i).value=_zongjia;
    }
    document.getElementById("xiaoji").value=_xiaoji;
    document.getElementById("heji").value=_xiaoji*_shui;}
    </script>
      

  4.   

    和我需要的不太一样,但谢谢你!
    现在我在每个分类(分类是固定的)中输入一个整数,按下submit后,每个分类对应的其他行,根据自己的种类输入的数据进行乘法运算(倍数在table里有),并显示的table里。比如说,我在类型1中输入2,  
    提交后,对应分类1的其他行,根据倍数运算、显示。