我试着和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/答案 0 :(得分:3)
尝试:
var body = document.body;
你正在使用document.getElementById('body')[0]
...这不起作用,因为getElementById不返回数组,它返回一个元素。事件,如果你没有[0]
,它只有在你真正将“身体”的id添加到body元素时才有效...
(见小提琴:http://jsfiddle.net/Q4eCa/2/)
您还同时使用了tblbody
和tblBody
...您需要选择一个,因为javascript区分大小写。
这也会引发错误:
var ndiv = round(temp);
cell.appendChild(ndiv);
因为你不能将一个字符串“appendChild”放到DOM节点上。试试这个:
var ndiv = round(temp);
cell.innerHTML = ndiv;
那将会让你大部分时间到来。此时表格正在创建,您只需在“计算”功能中出现错误。