Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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:我正在尝试在model中创建动态表以供使用_Javascript_Html_Bootstrap Modal - Fatal编程技术网

Javascript:我正在尝试在model中创建动态表以供使用

Javascript:我正在尝试在model中创建动态表以供使用,javascript,html,bootstrap-modal,Javascript,Html,Bootstrap Modal,我试图为摊销表创建一个动态表,但无法追加列。它每次都插入行,所以我的每个值都在新行中,我如何创建循环,以便我的下一列应该是+1。因为这是第0行,所以每次它都向上,我的整个桌子都颠倒了 我写了这么多 function writeln(str) { var output = document.getElementById("output"); var txt = document.createTextNode(str); var row = output.insertRow(0);

我试图为摊销表创建一个动态表,但无法追加列。它每次都插入行,所以我的每个值都在新行中,我如何创建循环,以便我的下一列应该是+1。因为这是第0行,所以每次它都向上,我的整个桌子都颠倒了

我写了这么多

function writeln(str) {
  var output = document.getElementById("output");
  var txt = document.createTextNode(str);
  var row = output.insertRow(0);
  var cell1 = row.insertCell(0);
  cell1.innerHTML = str;
}
function main() {
  for (var i = 1; i <= numpayments; ++i) {
    sumpay += payments;
    propertypriceapp = 0.0090 + propertypriceapp;
    var thisint = balance * intrate;
    sumint += thisint;

    var thisprin = payments - thisint;
    sumprin += thisprin;

    balance -= thisprin;

    var curvalequity = sumprin * (1 + propertypriceapp);

    writeln(flushright(i, 5));
      // flushright(fmtmoney(payments), 9) + "  " + 
      // flushright(fmtmoney(thisint), 9) + "  " + 
      // flushright(fmtmoney(thisprin), 8) + "  " + 
      // flushright(fmtmoney(sumpay), 9) + "  " + 
      // flushright(fmtmoney(sumint), 9) + "  " + 
      // flushright(fmtmoney1(sumprin), 9) + "  " + 
      // flushright(fmtmoney(balance), 12) + "   " +
      // flushright(fmtmoney1(curvalequity), 9) + "  " +
      writeln(flushright(fmtmoney1(propertypriceapp), 9));
    // write("----------------------------------------------------------------------------------------------------------------------")
    // writeln("")
  }
}
我的html代码是

<table class="modal-body" id="output">
        </table>
writeln函数每次调用时创建一行和一列

它有1个变量,即不可用-var txt=document.createTextNodestr;每次调用DOM-var output=document.getElementByIdoutput; 这对性能不利,而且代码很难理解

如果要在一行中创建更多列,代码必须如下所示:

var output = document.getElementById("output");

function writeln(str) {
    // str -> must be array, that have lenght = num of columns, you want to create
    var row = output.insertRow(0),
        len = str.lenght; // count of rows
    // creates rows 
    for (var i = 0; i < len; i++) {
        // create new row
        var cell = row.insertCell(i);
        // insert HTML code in it
        cell.innerHTML = str[i];    
    }
}

如果要创建更多包含列的行,必须将其放入循环中,每次在var row=output.insertRowj,line中更改j参数。

这就是上述问题的解决方案, str被转换成数组

temp = str.split(" "); // this will split string into ","
之后,用于创建单元格的数组

var table=document.createElement('TABLE');
table.setAttribute('class','table table-striped table-bordered')//this is bootstraps classes
var tbdy=document.createElement('TBODY');
table.appendChild(tbdy);
function writeln(str) {
  var output = document.getElementById("output");
    var temp = new Array();
    temp = str.split("  ");
     var tr=document.createElement('TR');
     tbdy.appendChild(tr);
     for (var zxc2=0;zxc2<temp.length;zxc2++){
      var td=document.createElement('TD');
      td.appendChild(document.createTextNode(temp[zxc2]));
      tr.appendChild(td);
    }
  output.appendChild(table);
}

这样我就得到了解决方案。

你的循环在哪里?您的代码在中创建一行和一列it@AndrewEvt改变了密码看你会知道我在做什么。