用JavaScript编写表格的HTML代码
我正在学习使用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
<!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