Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript,再添加一个元素。。。_Javascript_Elements - Fatal编程技术网

Javascript,再添加一个元素。。。

Javascript,再添加一个元素。。。,javascript,elements,Javascript,Elements,我正在学习这些东西,所以这是我最简单的脚本: var t = document.createElement("table"), tb = document.createElement("tbody"), tr = document.createElement("tr"), td = document.createElement("td"); t.style.width = "100%"; t.style.borderCollapse = 'collap

我正在学习这些东西,所以这是我最简单的脚本:

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.appendChild(document.createTextNode(title)); 
这很有效。。。 但如果标题包含html,例如一个简单的粗体标记,如so
Hello name
我们怎么做

我认为我们为
创建了一个新元素,但是。。。在那之后,我不知道怎么做。 只是想澄清一下,我希望最终的结果是
Hello name在TD标记中结束,如下所示:

<td>Hello<b> name!</b></td>
Hello name!
请帮忙

编辑; 是的,我知道我可以通过InnerHTML做到这一点,但我需要这样做才能通过Firefox AMO策略
很抱歉,应该在前面提到这一点…

尝试改用
td.innerHTML
。这样,您就可以无需担心地将标记作为标记传递。

您可以将innerHTML分配给要附加的元素

td = document.createElement("td");
td.innerHTML = "<em>OMG!</em> I can has <strong>HTML<strong>!"
tr.appendChild(td);
td=document.createElement(“td”);
td.innerHTML=“天哪!我可以拥有HTML!”
tr.appendChild(td);

正如其他人所提到的,您可以做的最简单的事情是:

td.innerHTML = "Hello<b> name!</b>";
另外,正如您所知,
标记在技术上是不受欢迎的。您应该改用

试试:

var td = document.createElement("td");
var b = document.createElement("b");
b.appendChild(document.createTextNode(" name!"));
td.appendChild(document.createTextNode("Hello"));
td.appendChild(b); 
结果:
Hello name


示例:

您可以尝试学习jQuery一个非常简单且高效的javascript库jQuery肯定很棒,但我认为如果人们在没有它的情况下先花时间学习更多javascript和DOM操作,那就更好了。如果JQuery不是一个选项,那么您仍然可以编写有效的JQuery,并且您知道JQuery(或任何JS库)的引擎盖下发生了什么,实际上它在技术上并没有被弃用-请参阅。尽管如此,我还是不会使用它。这会抛出一个错误:
b.appendChild(“name”)错误为:未捕获错误:未找到\u错误:DOM异常,在firefox中错误为:错误:未捕获异常:[exception…”无法转换JavaScript参数arg 0[nsidomHtmlement.appendChild]“nsresult:”0x80570009(NS\u错误\u XPC\u错误\u转换\u JS)”位置:“JS框架::file:///C:/wamp2/www/6/TESTS/Noname1.html ::加载::第38行“数据:否]@Ryan写得太快了。我忘了在“名称”周围创建文本节点。对此表示抱歉。@Andrew很有趣!谢谢分享!
var td = document.createElement("td");
var b = document.createElement("b");
b.appendChild(document.createTextNode(" name!"));
td.appendChild(document.createTextNode("Hello"));
td.appendChild(b);