尝试在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(id) { 警报(id); } var resultSet=“”; 函数CreateDiv() { resultSet+=“尝试在javascript中调用函数,javascript,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><sc
getComments(“+rows.data[i].id+”)”; } window.onload=CreateDiv; 根本没有调用函数getComments
我在这里遗漏了什么这里有一些问题
行
,但没有在任何地方定义它,这将导致异常行
,代码只是创建一个包含脚本
标记的字符串,并将该字符串放入结果集
。要使脚本标记内的代码运行,必须在某些元素上将resultSet
分配给innerHTML
getComments
的调用中有一个额外的)
id
值将显示为数字(这取决于您将它们传递到getComments
中,并且周围没有引号)。请注意,在HTML5中允许使用以数字开头的id
值,但在早期版本的HTML和CSS中不允许,因此最好避免使用
当然,有一个更好的方法去做你真正想做的事情,你可以考虑一个单独的问题来概括目标,你是如何接近它的,并且要求其他的选择。 <这里有一些问题。
行
,但没有在任何地方定义它,这将导致异常行
,代码只是创建一个包含脚本
标记的字符串,并将该字符串放入结果集
。要使脚本标记内的代码运行,必须在某些元素上将resultSet
分配给innerHTML
getComments
的调用中有一个额外的)
id
值将显示为数字(这取决于您将它们传递到getComments
中,并且周围没有引号)。请注意,在HTML5中允许使用以数字开头的id
值,但在早期版本的HTML和CSS中不允许,因此最好避免使用
<> P.>几乎可以肯定的是,有一个更好的方法来做你真正想做的事情,你可以考虑一个单独的问题来概括这个目标,到目前为止你是如何接近它的,并寻求替代方案。 < P>我建议你在调试它时把代码分解成步骤。特别是在您填充resultSet的位置。在每个加号处分解它。然后,您可以逐步浏览它并查看它是如何填充的
resultSet+="<br/><div id='";
resultSet+=rows.data[i].id;
resultSet+=”
我建议您在调试时将代码分解为多个步骤。特别是在填充resultSet的位置。在每个加号处将其分解。然后您可以一步一步地查看它是如何填充的
resultSet+="<br/><div id='";
resultSet+=rows.data[i].id;
resultSet+=”
尝试用以下内容替换createDiv
函数:
function CreateDiv(){
resultSet += "<br/><div id='"+rows.data[i].id+"'></div>" + getComments(rows.data[i].id);
}
函数CreateDiv(){
结果集+=“
”+getComments(rows.data[i].id);
}
它应该可以完美地工作。尝试用以下内容替换createDiv
函数:
function CreateDiv(){
resultSet += "<br/><div id='"+rows.data[i].id+"'></div>" + getComments(rows.data[i].id);
}
函数CreateDiv(){
结果集+=“
”+getComments(rows.data[i].id);
}
它应该可以完美地工作。应该调用getComments
的位置是哪里??不是。上面的代码块写在标记中,所以只要主体加载getComments,就应该调用它,但是它不会在create div中的所有变量中被调用。不要让senseI格式化JavaScript代码。现在很明显,为什么不调用getComments
函数。提示:检查引号。我看不到正在调用的函数。请说明在哪里。fn名称只在一个字符串中传递,该字符串被分配给一个无处使用的变量。其中getComments
应该被调用吗??不是。上面的代码块写在标记中,所以只要主体加载getComments,就应该调用它,但是它不会在create div中的所有变量中被调用。不要让senseI格式化JavaScript代码。现在很明显,为什么不调用getComments
函数。提示:检查引号。我看不到正在调用的函数。请说明在哪里。fn名称仅在字符串中传递,该字符串被分配给一个变量,该变量不在任何地方使用。resultSet
定义为:var resultSet=“”代码>(上面CreateDiv
)resultSet
已定义:var resultSet=”“
(上图CreateDiv
)“另外,我在质疑resultSet中的最终结果是否正确”是的,结果字符串将是“”,因为在JavaScript中转义斜杠只会导致斜杠。这是防止HTML解析器在字符串中看到“”并过早终止该字符串出现的脚本块的常用方法。此外,我还质疑resultSet中的最终结果是否正确“是的,结果字符串将是“”,因为在JavaScript中转义斜杠只会导致斜杠。这是防止HTML解析器在字符串中看到“”并提前终止显示该字符串的脚本块的常用方法。这是否真的有效,@Sandhurst?我以为你仍然会遇到T.J.在回答中指出的未定义变量的问题。我不明白为什么有人否决了唯一直接且可接受的答案。你最终会在结果集中出现字符串“未定义”(因为getComments
不返回值,所以调用它的结果是undefined
)。最好单独调用它