Javascriptで、次のコードがあるとします。
_<div>
<script type="text/javascript">var output = 'abcdefg';</script>
</div>
_
output
の内容を_#test
_に単純に「エコー」する(PHP用語を使用))方法はありますか?つまり、文字列をインラインで出力する方法はありますか? DOMをトラバースまたは選択する標準的な方法がありませんか?
document.write("...");
はoutput
の内容を書き込みますが、そうすることで、ドキュメント全体がoutput
に置き換えられます。
私が探しているソリューションは、a PHP echo
と同じように動作するはずです:出力をドキュメントにインラインで書き込みます。
「コーシャ」コードはさておき、はい。
document.write()
使用する必要があります document.write
[ドキュメント] :
<div id="test">
<script type="text/javascript">document.write('abcdefg');</script>
</div>
XHTMLドキュメントでは機能しないという警告があります。詳細については、ドキュメントを参照してください。
標準ベースのブラウザの場合:
document.getElementByID("test").textContent = output;
より広範なサポートのために、jQuery(または選択したライブラリの場合は同等のメソッド)で text を使用できます。
$('#test').text(output);
私はこれが古い質問であることを知っていますが、誰かがまだ探しているなら、ここに仕事をする便利な機能があります。
function echo(text)
{
document.body.appendChild(document.createElement("div")).appendChild(document.createTextNode(text));
}
次のように書くことができます:
<div id="test">
<script>
document.getElementById('test').innerHTML = "stuff";
//this line only changes content in the div with id="test", not the whole dom
</script>
</div>
ただし、スクリプトは上書きされる可能性があるため、div内にスクリプトを配置することは避けてください。
コードがdivにある場合は、実行時にdocument.write('abcdefg')
をインラインで挿入するのが適切です。
または、コードがdiv内にない場合は、次のように実行できます。
<div id="test">
</div>
<script type="text/javascript">
var output = 'abcdefg';
document.getElementById("test").innerHTML = output;
</script>
ページが読み込まれ、divが存在する後に、コードが実行されることを確認する必要があります。
console.log()
chromeおよびie9 ..でサポートされています。互換性のある後方に注意してください。ie8以下になると思います...