12

这是我的脚本:

<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>

到目前为止,我的输出都出现在一行中,其中显示了 break 标记而不是 b

4

3 回答 3

19

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/

于 2012-10-24T00:45:14.157 回答
4

您正在创建一个文本节点,因此 html 标记将被忽略。改用 document.createElement :

var myDiv = document.createElement("div");
myDiv.id = 'myDiv';
myDiv.innerHTML = 'blah!<br/>';
document.body.appendChild(myDiv);
于 2012-10-24T00:42:50.237 回答
3

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

你可以加...

out.appendChild(document.createElement("br"));
于 2012-10-24T00:42:10.883 回答