<input type="text" size="5" id="bzjftotal" name="bzjftotal">
<input type="text" size="5" id="elsejftoal" name="elsejftotal"><%For i=1 To rs_class.recordcount%>
  <%If rs_class.eof Then Exit For%>
  <tr>
    <td><%=rs_class("classname")%></td>
    <td><input value="<%=rs_class("bzjf")%>" type="text" size="5" id="bzjf<%=rs_class("id")%>" name="bzjf<%=rs_class("id")%>" onchange="plusall()"></td>
    <td><input value="<%=rs_class("elsejf")%>" type="text" size="5" id="elsejf<%=rs_class("id")%>" name="elsejf<%=rs_class("id")%>" onchange="plusall()"></td>
  </tr>
  <%rs_class.movenext%>
<%next%>
因为文本框的Id和Name属性都是根椐数据库的ID字段动态生成的,我想分别计算前缀是bzjf和前缀是elsejf所有文本框的值的和,不知道JS能不能模糊获取ID,也就是根椐那两个前缀获取属于它们的对象的集合。各们大哥,应该能懂我的意思吧?
帮帮忙,谢啦!

解决方案 »

  1.   

    取xx.getElementsByTagName('*')然后遍历吧...
      

  2.   


    var bzjf = [];//存放bzjf所有ID
    var elsejf = [];//存放elsejf所有ID
    var alljf = [];//存放符合条件所有ID
    function parseInput()
    {
       var inp = document.getElementsByTagName("input");
       for(var i=0;i<inp.length;i++)
       {
           if(inp[i].type!='text') continue;//只保留text类型输入框
           if(/bzjf/.test(inp[i].id)) bzjf.push(inp[i].id);
           if(/elsejf/.test(inp[i].id)) elsejf.push(inp[i].id);
           if(/(bzjf)|(elsejf)/.test(inp[i].id)) alljf.push(inp[i].id); 
       }
      alert("bzjf:  "+bzjf.join(",") + "\n" +"elsejf: "+bzjf.join(",") + "\n"+"alljf: "+bzjf.join(","));
    }
    parseInput();//请用函数,这样应该达到要求了吧!
      

  3.   

    alert("bzjf:  "+bzjf.join(",") + "\n" +"elsejf: "+elsejf.join(",") + "\n"+"alljf: "+alljf.join(","));