我有以下功能:
<script>
function generateHtml(index)
{
document.write('Hello ' + index);
}
</script>
我有一个服务器端脚本生成以下html
<div><script>generateHtml(3)</script></div>
<div><script>generateHtml(4)</script></div>
希望在页面中写入Hello 3
和Hello 4
。但是,这不会发生。相反,没有显示。这种方法有什么问题?
包裹<div>
是否可以更好地选择,然后更改html而不是写入DOM?
答案 0 :(得分:1)
最有可能在其他<script>
块之后添加generateHtml
包含函数<script>
,导致
Uncaught ReferenceError: generateHtml is not defined
确保事先添加it works as expected。
答案 1 :(得分:0)
要使您的代码正常工作,您必须确保在javascript函数
之后页面上存在html<body>
<script>
function generateHtml(index)
{
document.write('Hello ' + index);
}
</script>
<div><script>generateHtml(3)</script></div>
<div><script>generateHtml(4)</script></div>
</body>
要回答你的问题,使用id来选择DOM元素肯定是一个更好的选择。
也许是一个建议,使用一个MVVM框架,如knockout / ember / backbone / angular来做任何动态DOM操作。
这里的淘汰示例---&gt; http://jsfiddle.net/x0t8dxzw/