javascript - 如何在javascript中获取隐藏字段的数字总和?

标签 javascript jquery

我有一些带有“absclass”类的动态输入隐藏字段。我有数字和 这些字段中的字符。 我想得到javascript中数字的总和。我已经写了如下,那就是
不工作。

  $(document).ready(function() {
        $('#btn').live('click', function(e) {
            e.preventDefault();
            var sum = 0;
            $('.absclass').each(function() {
                sum += Number($(this).val());
            });
            $("#sum").html(sum); 
        });                              
    });    

请告诉我为什么它不起作用?

编辑:HTML 代码

<td><input type="hidden" class="absclass" id="txtsp<?php echo $p; ?>" value=""/></td>

下面是脚本。在单击此按钮时,我将值传递给隐藏字段,并且
同时获取它们的总和。这样只有值传递到字段,但是当我去

第二次点击,总和就出来了。

        <script>
    var arr = new Array();
    $(document).ready(function() {
        $('#btn').on('click', function(e) {
            e.preventDefault();
            var txt1 = $('#txt1').val();
            var txt2 = $('#txt2').val();
            var txt3 = $('#txt3').val();
            var txt4 = $('#txt4').val();
            var txt5 = $('#txt5').val();
            var txt6 = $('#txt6').val();
            var textbox1 = $('#textbox1').val();
            var textbox2 = $('#textbox2').val();
            var textbox3 = $('#textbox3').val();
            var textbox4 = $('#textbox4').val();
            var textbox5 = $('#textbox5').val();
            var textbox6 = $('#textbox6').val();
            $.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6}, function(data) {
                var obj = $.parseJSON(data);
          <?php for ($k = 0; $k < 6; $k++) { ?>
                    $('#txtspan<?php echo $k; ?>').html(obj[<?php echo $k; ?>]);
                    $('#txtsp<?php echo $k; ?>').val(obj[<?php echo $k; ?>]);
//                        $(".hide").css( "display", "block");
//                        $(".answertext").css( "display", "none");
            <?php } ?>
            });
            var sum = 0;
            $('.absclass').each(function() {
                var val = Number($(this).val());
                if (!isNaN(val)) {
                    sum += val;
                }
            });
            $("#sum").html(sum);
        });
             });
       </script>

最佳答案

.live() 方法已弃用 (jQuery 1.7)。使用 .on() 代替。

<!doctype html>
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
</head>
<body>
<form>
<input type="button" value="btn" id="btn">
<input type="hidden" value="1" class="absclass">
<input type="hidden" value="2" class="absclass">
<input type="hidden" value="3" class="absclass">
<input type="hidden" value="4" class="absclass">
<input type="hidden" value="5" class="absclass">    
</form>
<div>Total: <span id="sum"></span></div>    
<script>
$(document).ready(function() {
    $('#btn').on('click', function(e) {
        e.preventDefault();
        var sum = 0;
        $('.absclass').each(function() {
            sum += Number($(this).val());
        });
        $("#sum").html(sum); 
    });                              
});    
</script>
</body>
</html>

关于javascript - 如何在javascript中获取隐藏字段的数字总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541174/

相关文章:

javascript - 清除所有数据并恢复默认设置

javascript - Date 对象中 2 月的 31 天

javascript - 如何在使用 textContent 获取 html 标签后插入新行

javascript - 如何在 TypeScript 中表示包含多种类型的二维数组?

javascript - 具有不同名称的一组复选框的 jQuery 验证方法

javascript - 延迟解析 JavaScript 以加载 JQuery

javascript - 如果购物车商品数量为三 – 隐藏添加到购物车 |店铺化

javascript - 更新 li 元素的属性 data-id Nestable 不更新

javascript - 表单中数据类型可变

javascript - 返回延迟对象或 null