为具有相同类的元素触发jQuery事件

时间:2015-04-15 21:17:01

标签: javascript jquery html

我有以下HTML ....

<INPUT name="debit[]" id=d1 class='Right debit' type="text" value="" /><br/>
<INPUT name="debit[]" id=d2 class='Right debit' type="text" value="" /><br/>
<INPUT name="debit[]" id=d3 class='Right debit' type="text" value="" /><br/>
<INPUT name="debit[]" id=d4 class='Right debit' type="text" value="" /><br/>
<INPUT name="debit[]" id=d5 class='Right debit' type="text" value="" /><br/>

<INPUT name="iDebit[]" id=iDebit type="text" value="" /><br/>

<script>
$("input.debit").keyup(function(){
    var total = sumSizes('debit');
    $("#iDebit").val(total);
});

function sumSizes(calc) {
    var total = 0;
    $('.' + calc).each(function() {
        total += parseFloat($(this).val(), 10) || 0;
    });
   return (total);
}

function addRow(tableID){
    var table    = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row      = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;
    for(var i=0;i<colCount;i++){
        var newcell = row.insertCell(i);
        newcell.innerHTML = table.rows[0].cells[i].innerHTML;
        switch(newcell.childNodes[0].type){
        case "text":
        newcell.childNodes[0].value="";
        break;
        case "checkbox":
        newcell.childNodes[0].checked=false;
        break;
        case "radio":
        newcell.childNodes[0].checked=false;
        break;
        case "select-one":
        newcell.childNodes[0].selectedIndex=0;
        break;
    }
    newcell.childNodes[0].id=newcell.childNodes[0].id+rowCount;
}
updateCredit();
updateBalance();
}
</script>

我想要的是每当我更改任何输入中的值时 元素,javascript应该计算'total'并更新id为#iDebit的输入元素。

它仅适用于第一个INPUT元素。我该如何解决这个问题 适用于任何具有class = debit?

的INPUT元素

1 个答案:

答案 0 :(得分:0)

您的代码似乎对我有用,但我唯一的建议是使用ID标签作为特定符号,也许这会在您的浏览器中更好地工作。