2011-07-28 54 views
0

我提交了一个Firefox插件给Mozilla目录,却遭到了拒绝,因为这样的:的JavaScript,DOM:使用appendChild和的textContent

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个我有类似上述内容的实例吗?

谢谢!

+0

他拒绝了它,因为它可以使用这种技术注入HTML代码。 – Pindatjuh

+0

我知道,那是他告诉我的......我知道他为什么拒绝它,但不知道如何使用他告诉我使用的其他东西。虽然这似乎有点有用:http://stackoverflow.com/questions/2962137/adding-new-elements-into-dom-using-javascript-appendchild – Ryan

回答

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。

+0

你可以写更多的代码吗?我已经找到了它,直到风格属性只。其他方面的其他内容......对如何继续进行了解甚少。 – Ryan

+0

我更新了我的答案。检查具有详细示例的MDN链接。 – Mrchief

+0

关闭标签怎么样?而不是t.style.wide我不能t.style =“border-collapse:collapse; width:100%;”; – Ryan

3

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

+0

阅读后,我更困惑:( – Ryan

2

与其使用innerHTML,他希望您使用更直接更改DOM的函数。 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并在该点添加即可。

+0

这是我的确切代码http://pastebin.com/L6hZHDLT,在这个文件中只有两个innerHTML thingies,你可以告诉/给我的代码替换这两个? – Ryan

+0

你真的需要一个表吗?它是表格数据吗?如果不是只是用item替换locationInDom并使用item.appendChild(newText); – scrappedcola

+0

它不是我的代码,所以我不想做许多更改,另一个开发人员,比我经历的要多得多,但他生病了,我必须确保这通过了批准,否则我就搞砸了...... – Ryan