Javascript内联输出

时间:2011-07-04 00:07:39

标签: javascript echo

在javascript中假设你有这段代码:

<div>
    <script type="text/javascript">var output = 'abcdefg';</script>
</div>

有没有办法简单地“回显”(使用PHP术语)output的内容到#test?也就是说,要输入一个内联字符串,假设你没有标准的遍历方式或从DOM中选择?

document.write("...");会写output的内容,但在这样做时,它会用output替换整个文档。

我正在寻找的解决方案应该采用与PHP echo相同的方式:将输出内联写入文档。

7 个答案:

答案 0 :(得分:10)

您必须使用document.write [docs]

<div id="test">
    <script type="text/javascript">document.write('abcdefg');</script>
</div>  

DEMO

有一点需要注意,它在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)

的console.log()

http://getfirebug.com/logging

也支持chrome和ie 9 ..注意向后兼容它会让你ie8和我认为...