试图在javascript中调用函数

时间:2011-06-05 10:11:32

标签: javascript

这是我的代码,我需要做的就是调用一个函数,将内容写入动态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

我在这里失踪的是什么

3 个答案:

答案 0 :(得分:4)

那里有一些问题。

  1. 您引用rows而未在任何地方定义它,这将导致异常。
  2. 假设您在未显示的位置定义rows,代码只是创建一个包含script标记的字符串,并将该字符串放在resultSet中。要使脚本代码中的代码运行,您必须在某个元素上为resultSet分配innerHTML
  3. 在生成的脚本中,您对)的调用会额外getComments
  4. 另外:您的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);
}

它应该完美无缺。