循环ID和每个功能

时间:2011-03-27 17:55:07

标签: jquery each

我使用JQUERY EACH函数动态调整12个文本框值,并使用此代码添加“txt”类:

<script>
    $(document).ready(function(){

        //iterate through each textboxes and add keyup
        //handler to trigger sum event
        $(".txt").each(function() {

            $(this).keyup(function(){
                calculateSum();
            });
        });

    });

    function calculateSum() {

        var sum = 0;
        //iterate through each textboxes and add the values
        $(".txt").each(function() {

            //add only if the value is number
            if(!isNaN(this.value) && this.value.length!=0) {
                sum += parseFloat(this.value);
                }

        });

        $("#sum").html(sum);
</script>

我想创建使用每个仅3个文本框值动态计算的4个小计。我在表单中添加了4个不同的ID。我如何使用上面的函数动态计算当前id的小计。获得结果的spans id被命名为“ID_SUM”(根据修改的文本框的ID值,ID必须是动态的)? 非常感谢你。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案...... ID是唯一的,所以它不起作用。我使用了这样的name属性:

<script>
    $(document).ready(function(){

        //iterate through each textboxes and add keyup
        //handler to trigger sum event
        $(".txt").each(function() {

            $(this).keyup(function(){
            calculateSum($(this).attr("name"));
            });
        });

    });

    function calculateSum(groupe) {

        var sum = 0;
        var subtotal = 0
        //iterate through each textboxes and add the values
        $(".txt").each(function() {

            //add only if the value is number
            if(!isNaN(this.value) && this.value.length!=0) {
                sum += parseFloat(this.value);
                }

        });
        //.toFixed() method will roundoff the final sum to 2 decimal places : $("#sum").html(sum.toFixed(2))
        $("#sum").html(sum);

        $('input[name="' + groupe + '"]').each(function() {

            //add only if the value is number
            if(!isNaN(this.value) && this.value.length!=0) {
                subtotal += parseFloat(this.value);
                }

        });
        //.toFixed() method will roundoff the final sum to 2 decimal places : $("#sum").html(sum.toFixed(2))
        $("#" + groupe + "_SUM").html(subtotal);

    }
</script>