JavaScript字符串不是';t转换为HTML对象?
我想做的很简单:在一个div中添加一个1x20的输入单元格表 我创建了一个JavaScript函数JavaScript字符串不是';t转换为HTML对象?,javascript,html,Javascript,Html,我想做的很简单:在一个div中添加一个1x20的输入单元格表 我创建了一个JavaScript函数 var tableHTML = function(attributes, rows, columns) { var retHTML = "<table " + attributes + ">"; for (var i = 0; i < rows; ++i) { retHTML += "<tr>"; for (va
var tableHTML = function(attributes, rows, columns)
{
var retHTML = "<table " + attributes + ">";
for (var i = 0; i < rows; ++i)
{
retHTML += "<tr>";
for (var j = 0; j < columns; ++j)
retHTML += "<td> </td>";
retHTML += "</tr>";
}
return (retHTML + "</table>retHTML");
}
var tableHTML=function(属性、行、列)
{
var retHTML=“”;
对于(变量i=0;i
为具有指定维度和属性的表提供HTML。然后,在HTML的主体中,我将
<div class="inner_div" id="input_table">
<!-- div to house the table -->
</div>
<script type="text/javascript">
document.getElementById("input_table").innerHTML += tableHTML("id=\"input_table\" type=\"input\"", 1, 20);
</script>
document.getElementById(“input\u table”).innerHTML+=tableHTML(“id=\“input\u table\”type=\“input\”,1,20);
我原以为能完成任务,但没能。我想这是因为我试图将字符串对象分配给HTML对象。我有点认为会有一个隐含的演员阵容。不管怎样,我想知道是否有人能“快速解决”我的问题。我不想重做解决这个问题的整个方法,但我也不介意有人告诉我做我正试图做的事情的正确方法——使用JavaScript在加载时填充HTML页面 我尝试了你的代码,它成功了:表已生成,显然是空的
但是要小心:如果你这样做,你会有两个相同ID的元素(输入表)我的看法是这样的。我正在学习函数式编程,所以我在这里做了很多看起来像是在浪费编码的事情,但概念如下:
- 获取尺寸
- 创建一行
- 复制该行以生成表
- 然后把桌子还给我
// Makes a single row
var makeRow = function(_columns) {
var row = document.createElement('tr');
var cell = document.createElement('td');
var cols = _columns;
while (cols) {
row.appendChild(cell.cloneNode(true));
cols--;
}
return row;
}
// Makes a table
var makeTable = function(_rows, _columns) {
var table = document.createElement('table');
var row = makeRow(_columns);
var rows = _rows;
while (rows) {
table.appendChild(row.cloneNode(true));
rows--;
}
return table;
}
您是否使用了诸如Firebug或Chrome之类的调试器进行了调试?innerHTML是一个字符串,公平地说,您的函数非常糟糕,但您应该真正了解如何使用DOM API并使用它而不是使用字符串构造表。看看createElement和appendChild。另外,你能在JSFIDLE上创建一个提琴来说明这个问题吗?