-3

私は JavaScript の操作を学んでおり、関数の値を使用して、スクリプトで HTML テーブルを作成しようとしています。

<!DOCTYPE html>
<head>
<meta charset="utf-8">

<script type="text/javascript">
function nextStep(xn, a) {
 var xn1 = (xn+(a/xn)/2);
 return xn1;
}

function getError(xn, a) {
 var err = xn-(a/xn);
 return err;
}

function newtonRoot(x) {
if(x>0) {
 var a = 2;
 var error = getError(x, a);
 var zeilen = 0;
 var x_werte = [];
 var errors = [];

 while(error>0.0001) {
 x = nextStep(x, a);
 error = getError(x, a);
 zeilen++;
 x_werte[zeilen] = x;
 errors[zeilen] = error;
 }
 var ergebnis = x;
 const GLOBAL_ERROR = error;

 document.body.appendChild(document.createTextNode("<table border=" + "1" + ">"));
 document.body.appendChild(document.createTextNode("<tr><td>Schritt</td><td>Startwert" + a + "</td><td>Fehler</td></tr>"));

 for(var i=1;i<zeilen+1;i++) {
    document.body.appendChild(document.createTextNode("<tr>"));
    document.body.appendChild(document.createTextNode("<td>i</td>")));
    document.body.appendChild(document.createTextNode("<td>" + x_werte[i] + "</td>"));
    document.body.appendChild(document.createTextNode("<td>" + errors[i] + "</td>"));
    document.body.appendChild(document.createTextNode("</tr>)));
 }
 document.body.appendChild(document.createTextNode("</table>"));
 document.body.appendChild(document.createTextNode("Ergebnis: Wurzel von" + a + "ist" + ergbenis + "(approximiert)"));
}
}
newtonRoot(1);
  </script>
 </head>
 <body>
 </body>
 </html>

しかし、それは機能していないようですか?http://www.jslint.com/
を使用して検証を試みましたが、エラーとしてマークされた小さなものが非常に多く、それらを取り除くとエラーが発生しました。

「'(end)' が予期されていましたが、代わりに < !DOCTYPE html > が表示されました」

これはバグのようです。
別のサイトでは実際にエラーは検出されませんでしたが、ここで何が間違っていたのでしょうか?

私が理解したように、書き込みはページロードでのみ使用できるため、書き込みの代わりにこのappendChildを使用しました。

編集: 最初の目標を明確にしていない可能性
があります。HTML でテーブルを作成したいのですが、コードを本文に書き込むのではなく、スクリプトに for ループで記述させます。

4

4 に答える 4

1
  1. 開始 HTML タグと HEAD タグがありません。タイトルタグがありません。
  2. コードの構文エラーが多い
  3. const の使用には注意してください。広くサポートされていません。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

クリーンアップされたコードは次のとおりです。

 <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script type="text/javascript">
        function nextStep(xn, a) {
            var xn1 = (xn + (a / xn) / 2);
            return xn1;
        }

        function getError(xn, a) {
            var err = xn - (a / xn);
            return err;
        }

        function newtonRoot(x) {
            if (x > 0) {
                var a = 2;
                var error = getError(x, a);
                var zeilen = 5;
                var x_werte = [];
                var errors = [];

                while (error > 0.0001) {
                    x = nextStep(x, a);
                    error = getError(x, a);
                    zeilen++;
                    x_werte[zeilen] = x;
                    errors[zeilen] = error;
                }
                var ergebnis = x;
                var GLOBAL_ERROR = error;

                var table = document.body.appendChild(document.createElement("table"));
                table.setAttribute('border', '1');
                var hrow = document.createElement('tr');
                var td1 = document.createElement('td'); td1.appendChild(document.createTextNode("Schritt"));
                var td2 = document.createElement('td'); td2.appendChild(document.createTextNode("Startwert " + a));
                var td3 = document.createElement('td'); td3.appendChild(document.createTextNode("Fehler"));
                hrow.appendChild(td1); hrow.appendChild(td2); hrow.appendChild(td3);
                table.appendChild(hrow);

                for (var i = 1; i < zeilen + 1; i++) {
                    var row = document.createElement('tr');
                    var td_i = document.createElement('td'); td_i.appendChild(document.createTextNode(i));
                    var td_x_werte = document.createElement('td'); td_x_werte.appendChild(document.createTextNode(x_werte[i]));
                    var td_errors = document.createElement('td'); td_errors.appendChild(document.createTextNode(errors[i]));
                    row.appendChild(td_i); row.appendChild(td_x_werte); row.appendChild(td_errors);
                    table.appendChild(row);
                }
                document.body.appendChild(document.createTextNode("Ergebnis: Wurzel von " + a + " ist " + ergebnis + " (approximiert)"));
            }
        }
        newtonRoot(1);
    </script>
</body>
</html>
于 2013-06-23T14:17:25.857 に答える
0

エラー:

if(x>0 {

でなければなりません

if(x > 0) {
于 2013-06-23T14:09:22.600 に答える