Javascript,尝试在创建文本节点方法中添加换行符

jim*_*ast 11 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>
Run Code Online (Sandbox Code Playgroud)

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

Lar*_*tle 16

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);
Run Code Online (Sandbox Code Playgroud)

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


Hea*_*her 5

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

var myDiv = document.createElement("div");
myDiv.id = 'myDiv';
myDiv.innerHTML = 'blah!<br/>';
document.body.appendChild(myDiv);
Run Code Online (Sandbox Code Playgroud)


ale*_*lex 3

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

你可以添加...

out.appendChild(document.createElement("br"));
Run Code Online (Sandbox Code Playgroud)