这是我的代码,我需要做的就是调用一个函数,将内容写入动态div
<script language='javascript' type='text/javascript'> function getComments(id) { alert(id); } var resultSet=""; function CreateDiv() { resultSet+="<br/><div id='"+rows.data[i].id+"'></div><script language='javascript' type='text/javascript'> getComments("+rows.data[i].id+"); <\/script>"; } window.onload=CreateDiv; </script>
根本没有调用函数getComments
我在这里失踪的是什么
答案 0 :(得分:4)
那里有一些问题。
rows
而未在任何地方定义它,这将导致异常。rows
,代码只是创建一个包含script
标记的字符串,并将该字符串放在resultSet
中。要使脚本代码中的代码运行,您必须在某个元素上为resultSet
分配innerHTML
。)
的调用会额外getComments
。另外:您的id
值似乎是数字(这是基于您将它们传递到getComments
而没有引号)。请注意,HTML5中允许使用以数字开头的id
值,但不能在早期版本的HTML中使用,而不能在CSS中使用,因此最好避免使用。
几乎可以肯定有更好的方法来做你真正想要做的事情,你可以考虑一个单独的问题,概述目标,你到目前为止如何接近它,并寻求替代方案。
答案 1 :(得分:0)
我建议您在调试时将代码分解为步骤。特别是在您填充resultSet的位置。在每个加号分解。然后,您可以单步执行它,看看它是如何填充的。
resultSet+="<br/><div id='";
resultSet+=rows.data[i].id;
等等。
其次,查看“查看源”以查看运行时页面上的内容。 HTML看起来是否正确形成?
另外,我在质疑resultSet中的最终<\/script>
是否正确。
答案 2 :(得分:-1)
尝试用此替换createDiv
函数:
function CreateDiv(){
resultSet += "<br/><div id='"+rows.data[i].id+"'></div>" + getComments(rows.data[i].id);
}
它应该完美无缺。