-6

我试图用 js 做桌子,令我惊讶的是,如果你知道我的意思,这不是在公园里散步,当我知道有信息要吐出时,我的代码如何继续返回 null。

html结构应该是

<table>
<tbody>
<tr>
<th>info here info here</th>
</tr>
<tr>
<th>info here info here</th>
</tr>
</tbody>
</table>

相反,我得到

<table>
    <tbody>
    <tr>
    <th>info here info here</th>
    <th>info here info here</th>
    </tr>
    </tbody>
    </table>

这是我正在使用的 JS,我还添加了完整的代码来小提琴 totalF 返回 null

 function totalF(){
    var body = document.getElementById('body')[0];
    var tbl = document.createElement('table');    
    var tblbody = document.createElement('tbody');
    var tndiv = document.getElementById('tdcontainer');

    for (var j = 0; j < payments; j++){
        var row = document.createElement('tr');

        temp=round(principal);
        while(temp>0){    
            if(tndiv != null){
                var cell = document.createElement('td');
                var ndiv =  round(temp);

                cell.appendChild(ndiv);
                row.appendChild(cell);
            }
            tblBody.appendChild(row);
            temp-=monthly;
            }
        tbl.appendChild(tblBody);
        body.appendChild(tbl);
        tbl.setAttribute("border", "2");
        }
    }

任何帮助是极大的赞赏。

编辑:抱歉添加到 jsfiddle http://jsfiddle.net/Q4eCa/

4

1 回答 1

3

尝试:

var body = document.body;

您正在使用document.getElementById('body')[0]...这将不起作用,因为 getElementById 不返回数组,它返回单个元素。如果您没有 事件[0],则只有在您实际将“body”的 id 添加到 body 元素时,它才会起作用......

(见小提琴:http: //jsfiddle.net/Q4eCa/2/

您还同时使用了tblbodyand tblBody... 您需要选择一个,因为 javascript 区分大小写。

这也会引发错误:

var ndiv =  round(temp);
cell.appendChild(ndiv);

因为您不能将字符串“附加”到 DOM 节点上。试试这个:

var ndiv =  round(temp);
cell.innerHTML = ndiv;

这将使您大部分时间到达那里。那时,表格正在创建,而“计算”功能中只有错误。

于 2012-04-16T21:22:44.250 回答