关于这个'NOT_FOUND_ERR:Dom例外8'的一些事让我困惑

时间:2012-11-06 17:12:16

标签: javascript exception dom appendchild

好吧,在这里我继续,尝试学习这个非常好的语言...所以我以前有一个非常难看的代码,充满了'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

上收到“异常8”错误

但如果我只做一个

alert(arraypro[0].Name);

它输出的确是输出的,非常正确的单词。如果[{1}}可以检索arraypro[product].Name中的值(如果您传递'product'的值)而不是alert,那么{/ 1}}是如何检索的?

我仍然不太熟悉编程逻辑,但我尝试......

PD:信息所在的appendChild已被声明为全局值,可以访问所有内容,以防重要信息。

非常感谢这里的任何意见。

1 个答案:

答案 0 :(得分:5)

appendChild()需要一个DOM-Node,你传递的是我认为的字符串。

您可以将其更改为:

var tname = arraypro[product].Name;
cell.appendChild(document.createTextNode(tname));