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>

これまでの私の出力はすべて、bではなくブレークタグが表示された1行に表示されます

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 に答える