Javascript:我正在尝试在模态内创建动态表以进行摊销

时间:2015-10-22 18:53:02

标签: javascript html bootstrap-modal

我正在尝试为摊销表创建一个动态表,但我想附加列。它每次插入行,所以我的每个值都在新行中,我如何创建循环,以便我的下一列应该是+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>

2 个答案:

答案 0 :(得分:0)

您的var txt = document.createTextNode(str);函数每次调用时都会创建1行1列。

它有1个var,不可用 - var output = document.getElementById("output");并且每次都调用DOM - 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]; } } 这对性能有害,代码很难理解。

如果要在一行中创建更多列,您的代码必须是这样的:

j

如果要创建包含列的更多行,则必须在循环中创建它,并且每次都在var row = output.insertRow(j),行中更改ID |Value |ID_Parent -----|-------|--------- 1 |NULL |NULL 2 |NULL |1 3 |30 |1 4 |NULL |2 5 |20 |4 6 |10 |NULL 参数。

答案 1 :(得分:0)

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

temp = str.split(" "); // this will split string into ","

之后用于创建单元格的数组&lt; TD&GT;

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);
}

这样我得到了解决方案。