id=“asum0”  value=‘1’
id=“asum1”  value=‘2’
id=“asum2”  value=‘3’
id=“asum3”  value=‘4’
.


。asum控件个数未知,怎么把带有字符串asum的id的value加起来

解决方案 »

  1.   


    var val=0;
    for(var i=0;;i++){
    if(document.getElementById("asum"+i)){
    val+=document.getElementById("asum"+i).value;
    }else{
    break;
    }
    }
      

  2.   


    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">//<![CDATA[
    window.onload = function(){
    var obj = document.getElementsByTagName("input");
    var iTotal = 0;
    for(var i = 0; i < obj.length; i++){
    iTotal += +obj[i].value; 
    }
    alert(iTotal);
    }
    //]]></script>
    </head>
    <body>
    <input type="text" value="1" />
    <input type="text" value="2" />
    <input type="text" value="3" />
    <input type="text" value="4" />
    </body>
    </html>
      

  3.   

    1楼的, 如果中间空了一个怎么办, 呵呵,
    2楼的, 如果还有其它的input呢,感觉用JQuery会好些, 当然如果ID前缀都一样, 并且其它地方的ID与此处的不相冲突.
    var sum = 0;
    var asum = $("input[id^='asum']");
    $.each(function(){
        sum += $(this).val();
    });wan
      

  4.   


      
       在ASUM个数未知的情况,就只能通过ByTagName,这个对未知INPUT数量的时候用。为了防止和页面其他标签冲突,最好把他缩小到一个ID范围内! var obj = document.getElementById('#id').document.getElementsByTagName("input");//红色某ID范围内遍历标签!
      
      

  5.   

    1楼 2楼需求没理解,asum的个数未定,中间可能是缺几项,比如 asum0,asum2,asum3.4楼,5楼是了不行,没有得到结果。
      

  6.   

    如果是asum0,asum2,asum3。
    用下4楼的 $("input[id^='asum']"),确实是好些 。
    当然也可以自己写正则匹配 。
    PS:4楼需要导入jquery库 。应该是可以的 。
      

  7.   

    4楼的sum总是0,只导入了jquery-1.3.2.min.js
      

  8.   

    jquery哪个函数或者属性 是取innerText的,$(this).text;????
      

  9.   


     jQuery(function($) {
            var sum = 0; 
            var asum = $("input[id^='asum']");
            asum.each(function(){ 
            sum +=  parseFloat( $(this).val()); 
                });
            alert(sum);
        }); 
      

  10.   

    楼主html 代码贴完!
    你试了4,5楼的不行?
    你页面标签是input 吗?
    document.getElementById()
    document.getElementsByTagName()说简单点,就这2个函数  循环 判断 就可以了!<div id='div_content'>
    <input type="text" value="1" id="asum0" />
            <input type="text" value="2" id="asum1"/>
            <input type="text" value="3" id="asum2"/>
            <input type="text" value="4" id="asum3"/></div>
    window.onload=function(){
    var arr=[];
    var inputs = document.getElementById("div_content").getElementsByTagName("input");
    for(var i=0;i<inputs.length;i++)
    {
    if(inputs[i].id.indexOf("asum")==0){
    arr.push(inputs[i].value);}
    }
    alert(arr);
    };
      

  11.   

        +++++++++++++++
       我就是5#的,本来就是啊,依靠document.getElementById()和document.getElementsByTagName()来遍历未知的情况,其他细节上再进行过滤需要或不需要的!难道不是这样吗??晕了!
      

  12.   

    我一般都是这样解决的:id=“asum0” value=‘1’ class='asum'
    id=“asum1” value=‘2’ class='asum'
    id=“asum2” value=‘3’ class='asum'
    id=“asum3” value=‘4’ class='asum'
    $('.asum').each(function(){ ... });
      

  13.   

    to 4楼,不要啥事儿都找JQ哎而且,一楼的代码中并不存在你所说的问题,请认真查看代码后发言、