在Javascript中添加表返回null

时间:2012-04-16 21:18:02

标签: javascript

我试着和js一起做桌子而且我很惊讶如果你知道我的意思,不管我的代码是什么意思,当我知道有信息要吐出来时,我的代码会如何继续返回null。

html struture应该是

<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/

1 个答案:

答案 0 :(得分:3)

尝试:

var body = document.body;

你正在使用document.getElementById('body')[0] ...这不起作用,因为getElementById不返回数组,它返回一个元素。事件,如果你没有[0],它只有在你真正将“身体”的id添加到body元素时才有效...

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

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

这也会引发错误:

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

因为你不能将一个字符串“appendChild”放到DOM节点上。试试这个:

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

那将会让你大部分时间到来。此时表格正在创建,您只需在“计算”功能中出现错误。