2012-10-24 25 views
9

这是我的脚本:的Javascript,尝试添加换行符中创建文本节点方法

<script> 
/*jslint browser:true */ 
var i; 
var out = document.getElementById("output"); 
var args = ["aaa", "bbb", "ccc", "ddd", 1, 2, 4 + 4]; 
function displayArgs() { 
    "use strict"; 
    for (i = 0; i < args.length; i++) { 
     out.appendChild(document.createTextNode(args[i] + "<br>")); 
    } 
} 

displayArgs(args); 
</script> 

我的输出到目前为止,所有出现在与展示,而不是突破标签的单一线b

回答

2

文本节点是一个文本节点,如果它包含一个<br>(或任何 HTML),它不会被解析为HTML,作为文本节点的数据作为纯文本处理。

您可以添加...

out.appendChild(document.createElement("br")); 
2

您正在创建一个文本节点,所以html标签会被忽略。用途使用document.createElement来代替:

var myDiv = document.createElement("div"); 
myDiv.id = 'myDiv'; 
myDiv.innerHTML = 'blah!<br/>'; 
document.body.appendChild(myDiv); 
+0

那不是要求我做一个单独的元素在循环中的每一个项目? – jimeast

+0

你已经是创造循环的每个项目单独的元件与document.createTextNode(...)调用。 – Heather

15

document.createTextNode防止被渲染为HTML文本。 改为尝试此操作。

/*jslint browser:true */ 
var i; 
var out = document.getElementById("output"); 
var args = ["aaa", "bbb", "ccc", "ddd", 1, 2, 4 + 4]; 
function displayArgs() { 
    "use strict"; 
    for (i = 0; i < args.length; i++) { 
     out.appendChild(document.createTextNode(args[i])); 
     out.appendChild(document.createElement("br")); 
    } 
} 
displayArgs(args); 

演示:http://jsfiddle.net/LVm9z/

+0

天才!非常感谢。 – jimeast

+0

这是我第一次来这里,我怎么接受你的答案吗? – jimeast

+0

@ user1769839数下点击箭头对答案的左上方,你要选择是正确的。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

相关问题