Javascript,DOM:appendChild和textContent

时间:2011-07-28 21:33:50

标签: javascript dom appendchild

我向mozilla目录提交了一个Firefox插件,因此被拒绝了:

item.innerHTML =   '<table style="border-collapse: collapse; width: 100%;">'
                  + '<tr><td style="line-height: inherit; padding: 0pt; width: 100%;">'
                   + word.title
                   + '</td></tr>'
                    + '</table>';

我和编辑谈过,他告诉我“use a text node and then insert it using appendChild, textContent, etc

这对我来说听起来像是完全胡言乱语,我从来没有使用TextContent, appendChild等等而且有点迷失。你能告诉我如何做到这一点吗?我会在我的剧本中编辑其他13个类似上面的实例吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

你可能需要按照这些方针做点什么:

var t  = document.createElement("table"),
    tb = document.createElement("tbody"),
    tr = document.createElement("tr"),
    td = document.createElement("td");

    t.style.width = "100%";

    // note the reverse order of adding child        
    tr.appendChild(td);
    tb.appendChild(tr);
    t.appendChild(tb);

   // more code to populate table rows and cells
   item.appendChild(t);

注意:以这种方式创建表格有一些注意事项,因为浏览器之间的工作方式不同。我建议咨询MDN以确定FF。

答案 1 :(得分:3)

他希望您以编程方式在JavaScript中创建HTML。拿一个read of this post,它应该为你清理。如果您想了解更多信息,请发表评论。

答案 2 :(得分:2)

他希望您使用以更直接的方式更改DOM的函数,而不是使用innerHTML。的appendChild

  

将节点添加到指定父级子级列表的末尾   节点。如果该节点已存在,则将其从当前父节点中删除   节点,然后添加到新的父节点

https://developer.mozilla.org/En/DOM/Node.appendChild。其格式为:var child = element.appendChild(child);

在你的实例中我会这样做:

var newText = document.createTextNode(word.title);
locationInDom.appendChild(newText);

其中locationInDom是您要使用innerHTML的地方。如果innerHTML进入表中,那么只需将id添加到特定的现有列,并使用getElementById方法并在此处添加。