我正在学习这些东西,所以这是我最简单的脚本:
var t = document.createElement("table"),
tb = document.createElement("tbody"),
tr = document.createElement("tr"),
td = document.createElement("td");
t.style.width = "100%";
t.style.borderCollapse = 'collapse';
t.border=1;
// note the reverse order of adding child
tr.appendChild(td);
tb.appendChild(tr);
t.appendChild(tb);
// more code to populate table rows and cells
document.getElementById("theBlah").appendChild(t);
alert(t);
}
现在我想添加一些将在<td>
中显示的内容,所以我想:
td.appendChild(document.createTextNode(title));
效果很好......
但是如果title包含html,例如一个简单的粗体标记,那么Hello<b> name!</b>
我们该怎么做?
我认为我们为<b>
创建了一个新元素但是......之后,我不知道该怎么做。
只是为了澄清,我希望最终结果是Hello<b> name!</b>
最终会出现在TD标签中:
<td>Hello<b> name!</b></td>
请帮助!!
EDIT; 是的,我知道我可以通过InnerHTML来做到这一点,但我需要这样做才能让它超越Firefox AMO政策 对不起,早些时候应该提到这个......
答案 0 :(得分:5)
请尝试使用td.innerHTML
。这样您就可以毫无顾虑地将标记作为标记传递。
答案 1 :(得分:2)
您将innerHTML分配给要追加的元素。
td = document.createElement("td");
td.innerHTML = "<em>OMG!</em> I can has <strong>HTML<strong>!"
tr.appendChild(td);
答案 2 :(得分:1)
正如其他人提到的,你能做的最简单的事情是:
td.innerHTML = "Hello<b> name!</b>";
你也可以这样做:
var b = document.createElement('b');
b.appendChild(document.createTextNode(" name"));
td.appendChild(document.createTextNode("Hello"));
td.appendChild(b);
此外,您知道,<b>
标记在技术上已被弃用。您应该使用<em>
或<strong>
代替。
答案 3 :(得分:1)
<强>尝试:强>
var td = document.createElement("td");
var b = document.createElement("b");
b.appendChild(document.createTextNode(" name!"));
td.appendChild(document.createTextNode("Hello"));
td.appendChild(b);
结果:<td>Hello<b> name!</b></td>