在javascript中假设你有这段代码:
<div>
<script type="text/javascript">var output = 'abcdefg';</script>
</div>
有没有办法简单地“回显”(使用PHP术语)output
的内容到#test
?也就是说,要输入一个内联字符串,假设你没有标准的遍历方式或从DOM中选择?
document.write("...");
会写output
的内容,但在这样做时,它会用output
替换整个文档。
我正在寻找的解决方案应该采用与PHP echo
相同的方式:将输出内联写入文档。
答案 0 :(得分:10)
您必须使用document.write
[docs]:
<div id="test">
<script type="text/javascript">document.write('abcdefg');</script>
</div>
有一点需要注意,它在XHTML文档中不起作用。有关详细信息,请参阅文档。
答案 1 :(得分:7)
&#34;洁净&#34;代码放在一边,是的。
document.write()
答案 2 :(得分:5)
在基于标准的浏览器中:
document.getElementByID("test").textContent = output;
要获得更广泛的支持,您可以在jQuery中使用text(如果您选择的库,则使用等效方法):
$('#test').text(output);
答案 3 :(得分:1)
你可以这样写:
<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中放入一个脚本,因为它可能会被覆盖。
答案 4 :(得分:1)
如果你的代码在div中,那么document.write('abcdefg')
是在执行点插入内联的正确选择。
或者,如果你的代码不在div中,你可以这样做:
<div id="test">
</div>
<script type="text/javascript">
var output = 'abcdefg';
document.getElementById("test").innerHTML = output;
</script>
您必须确保在加载页面并且存在div之后运行代码。
答案 5 :(得分:1)
我知道这是一个古老的问题,但是如果有人仍在寻找,那么这里有一个方便的功能。
function echo(text)
{
document.body.appendChild(document.createElement("div")).appendChild(document.createTextNode(text));
}
答案 6 :(得分:0)