Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript编写表格的HTML代码_Javascript_Html_Html Table - Fatal编程技术网

用JavaScript编写表格的HTML代码

用JavaScript编写表格的HTML代码,javascript,html,html-table,Javascript,Html,Html Table,我正在学习使用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

我正在学习使用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>

功能下一步(xn,a){
var xn1=(xn+(a/xn)/2);
返回xn1;
}
函数getError(xn,a){
var err=xn-(a/xn);
返回错误;
}
函数newtonRoot(x){
如果(x>0){
var a=2;
var error=getError(x,a);
var zeilen=0;
var x_werte=[];
var错误=[];
而(错误>0.0001){
x=下一步(x,a);
error=getError(x,a);
zeilen++;
x_werte[zeilen]=x;
错误[zeilen]=错误;
}
var ergebnis=x;
常量全局_错误=错误;
document.body.appendChild(document.createTextNode(“”);
document.body.appendChild(document.createTextNode(“SchrittStartwert”+a+“Fehler”);
对于(变量i=1;i“

这似乎是一个bug。
另一个站点实际上没有发现错误,那么我在这里做错了什么

我甚至用这个appendChild来代替write,因为据我所知,write只能在pageload上使用

编辑:好吧,也许我没有明确最初的目标:
我想用HTML创建一个表,但不是通过将代码写入正文,而是让脚本使用for循环来编写。错误:

if(x>0 {
一定是

if(x > 0) {

这段代码中有很多错误。我想我已经有了,但我不确定最终目标是什么。JSHint显示了多个小错误,您应该修复它们,而不是将它们视为无关

以下是我的修复方法:

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;
 var 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);
功能下一步(xn,a){
var xn1=(xn+(a/xn)/2);
返回xn1;
}
函数getError(xn,a){
var err=xn-(a/xn);
返回错误;
}
函数newtonRoot(x){
如果(x>0){
var a=2;
var error=getError(x,a);
var zeilen=0;
var x_werte=[];
var错误=[];
而(错误>0.0001){
x=下一步(x,a);
error=getError(x,a);
zeilen++;
x_werte[zeilen]=x;
错误[zeilen]=错误;
}
var ergebnis=x;
var全局_误差=误差;
document.body.appendChild(document.createTextNode(“”);
document.body.appendChild(document.createTextNode(“SchrittStartwert”+a+“Fehler”);
对于(var i=1;i
  • 缺少开始HTML和标题标记。缺少标题标记
  • 代码中存在大量语法错误
  • 小心使用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>
    
    
    功能下一步(xn,a){
    var xn1=(xn+(a/xn)/2);
    返回xn1;
    }
    函数getError(xn,a){
    var err=xn-(a/xn);
    返回错误;
    }
    函数newtonRoot(x){
    如果(x>0){
    var a=2;
    var error=getError(x,a);
    var zeilen=5;
    var x_werte=[];
    var错误=[];
    而(错误>0.0001){
    x=下一步(x,a);
    error=getError(x,a);
    zeilen++;
    x_werte[zeilen]=x;
    错误[zeilen]=错误;
    }
    var ergebnis=x;
    var全局_误差=误差;
    var table=document.body.appendChild(document.createElement(“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);
    表1.儿童(hrow);
    对于(变量i=1;i
    您的行号42中缺少一个

    document.body.appendChild(document.createTextNode("</tr>)));
    
    document.body.appendChild(document.createTextNode(“));
    
    应该是

    document.body.appendChild(document.createTextNode("</tr>")));
    
    document.body.appendChild(document.createTextNode(“”));
    

    也许这样做。

    听起来就像是你把整个HTML粘贴到JSLint中,不要这样做。只输入JavaScript。@MattBall Ok谢谢您的澄清,但是现在我得到了“‘document’在定义之前就已经使用了”"但是我真的不能定义它,是吗?好的,我改变了,但这似乎不是主要问题那么主要问题是什么?你会收到什么错误消息?打开谷歌浏览器并按F12,这会显示任何错误。它根本不起作用,当我打开它时,页面是空白的。我的目标是用它实际创建一个表,而不仅仅是print,或者这是不可能的?是的,我想将HTML代码添加到正文中,而不是编写它,因此我使用document.body。如果这不是正确的方法,您可以发布一个如何在JavaScript函数中创建HTML表的答案吗?为什么不,它说“var ergebnis=x如何更好地定义它谢谢,但我的问题仍然存在,它根本不起作用。我正在尝试创建一个HTML表,但不是通过将HTML代码写入正文,而是通过让脚本编写它,但这似乎不起作用,你能帮我吗?修改后的代码为你正确地构建了表。现在f