2012-01-09 28 views
0

私は電卓の機能が必要なプロジェクトに取り組んでおり、javascriptでさらに値を追加したり、文書内のすべての数値から合計を出力したりするサポートが必要です。 入力する数字は2桁の数字である必要があります。空白または数値以外のデータはスキップする必要があります。私は、広告別のJavaScriptを使用してテーブル内の行とは、テーブル内のすべてのフィールドの最終結果を計算することができますどのようにjavascript calculatorの機能

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>Sum Calculator</title> 
</head> 
<body> 
Number of Rows: <input type= text value=2 style="width:30px" maxlength=2 >&nbsp;&nbsp;<input type=button value='Change' onclick="" /> 
<br /><br /> 
<table cellspacing=0 cellpadding=4> 
<tr><td>Number 1:</td><td><input value=20 style="width:30px" type=text maxlength=2/></td></tr> 
<tr><td>Number 2:</td><td><input value=25 style="width:30px" type=text maxlength=2/></td></tr> 
<tr><td style="border-top:solid 1px black;border-bottom:solid 1px black;">Sum:</td><td style="border-top:solid 1px black;border-bottom:solid 1px black;"><div>45</div></td></tr> 
</table> 
<input type=button value='Recalculate Sum' onclick="" /> 
</body> 
</html> 

何かアドバイスを:ここに は、私がこれまで持っているものでしょうか? 事前に感謝、Laziale

+0

まあ最初のあなたは、テーブル( 'COL COLGROUP TABLE TBODY TFOOT THEAD TR'を)ので、あなたはクロスブラウザを見つけることができます注意してくださいIEの-保護書き込みする必要がありますアップ:あなただけのような何かを合計するために

矛盾。テーブルの一部を変更するJSライブラリを探します。参照:http://stackoverflow.com/questions/4729644/cant-innerhtml-on-tbody-in-ie – Rudu

答えて

0

実際にはかなり簡単です。

var trEl = document.createElement('tr'); 
    trEl.setAttribute('attribute', 'value'); // replace that with what you need 

    var tdEl = document.createElement('td'); 
    // Here set td attributes 
    trEl.appendChild(tdEl); 
    // And same for the input im to lasy to write. 

    document.getElementById('whateverId').appendChild(trEl); 

そして...それはそれだが:作成するための

<table cellspacing=0 cellpadding=4> 
    <tbody id="whateverId"> 
     <tr><td>Number 1:</td><td><input value=20 style="width:30px" type=text   maxlength=2/></td></tr> 
     <tr><td>Number 2:</td><td><input value=25 style="width:30px" type=text maxlength=2/></td></tr> 
     <tr><td style="border-top:solid 1px black;border-bottom:solid 1px black;">Sum:</td><td style="border-top:solid 1px black;border-bottom:solid 1px black;"><div>45</div></td></tr> 
    </tbody> 
    </table> 

JS:これを行います。それを関数などでグループ化します。

var s = 0; 
    for (var i = 0; i < document.getElementById('whateverId').childNodes.length; i++) 
    { 
     s += document.getElementById(whateverId).childNodes[i].firstChild.firstChild.value; // Hope I counted the first childs right.... you get the point. 
    }