好吧,在这里,我继续尝试学习这种非常好的语言...因此,我以前有一个非常丑陋的代码,里面充满了“ document.write()”和其他更丑陋的东西,现在我将其转换为非常符合标准的代码代码,我很喜欢!但是我发现了一个我看不到逻辑的问题。它去了:
在html文件中,我有这个:
<body onload="generatetable(0)">
在.js文件中,我有这个:
function generatetable(product) {
var tbinfo = document.createElement("table"); //table
var tbbody = document.createElement("tbody"); //tbody
var row = document.createElement("tr"); // creates row
for (var i = 0; i < 4; i++) { // creates 4 cells
var cell = document.createElement("td");
}
var tname = arraypro[product].Name;
cell.appendChild(tname);
(我没有粘贴表格的其余部分,因为它似乎可以正常工作)
并且在运行时,在
var tname = arraypro[product].Name
行上出现“ Exception 8”错误但是如果我只是做一个
alert(arraypro[0].Name);
它输出的恰好是正确的词。
arraypro[product].Name
中的值怎么可能由alert
检索(如果您传递'product'的值)而不是appendChild
?我仍然不太习惯编程逻辑,但是我尝试...
PD:信息所在的
arraypro
已被声明为全局值,以备不时之需。非常感谢您在这里的任何投入。
最佳答案
appendChild()
需要一个DOM-Node,您传递的是我相信的字符串。
您可以将其更改为:
var tname = arraypro[product].Name;
cell.appendChild(document.createTextNode(tname));