JavaScript动态参数

我有以下代码(html,js,jquery)片段( http://jsfiddle.net/MUScJ/2/ ):

 function someFunc(){ html = ''; z = 1; for(i=0; i<5; i++){ html += ''; z++; } $("#container").html(html); return true; } function otherFunc(z){ alert('z:' + z); return true; }  

此脚本使用onclick事件输出五个按钮。 JS函数otherFunc总是返回z变量等于6.是否有可能克服这个问题? 我希望每个按钮都有其特定的z值 – 1,2,3 ……等。

有任何想法吗 ?

更新的演示 – http://jsfiddle.net/MUScJ/4/

更新的代码 –

  html += ''; 

你正在使用字符串而不是param :)这是你更新的例子 。

但是尝试用jquery bind替换onclick。 强烈建议不要使用Onclick 🙂

由于您没有使用var ,因此您的z变量是全局变量。 出于多种原因,这是坏消息。 但在你的情况下,你的onclick正在调用otherFunc(z) ,其中z是全局z,它的最终值为6。

一种可能的解决方法是更改​​您生成的html:

 var z = 1; var html = ''; for(var i=0; i<5; i++){ html += ''; z++; } 

这是解决它的最简单方法,但是你并没有真正利用jQuery为你提供的强大function。

是的,改变这个:

 html += ''; 

进入这个:

 html += ''; 

这个问题是你通过递增z迭代的结果,但创建使用z代码(无论创建后调用的值是什么 – 在这种情况下它是6 )而不是使用z来创建静态代码(输入值)在HTML创建时)。