js循环 函数传参

baidu_30154619 2015-07-27 06:01:05

要实现点击按钮中间的数值变化,三行组件是用for循环出来的,下面是我的代码,但是每一个都不能实现功能,大神帮忙看一下······
<script>
var nums;
window.onload = function()
{
for(var i=0;i<3;i++){
nums = document.getElementById("num"+i).value;
document.getElementById("c"+i).onclick = changeNum(i);
document.getElementById("b"+i).onclick = changeNumA(i);
}
};
function changeNum(i)
{
nums++;
document.getElementById("num"+i).value = nums;
}
function changeNumA(i)
{
if(nums > 0){
nums--;
document.getElementById("num"+i).value = nums;
}
else{
document.getElementById("num"+i).value = 0;
}
}
</script>
<body>
<%for(int i=0;i<3;i++){ %>
<form action="#" method="post">
<input type="button" id="b<%=i %>" value="-"/>
<input type="text" id="num<%=i %>" readonly="readonly" value="<%=i+1 %>" style="width: 20px"/>
<input type="button" id="c<%=i %>" value="+"/>
</form>
<%} %>
</body>
...全文
159 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
纯洁袜子 2015-07-27
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:

window.onload = function()
{
for(var i=0;i<3;i++){
(function(i){
document.getElementById("c"+i).onclick = function(){changeNum(i);};
document.getElementById("b"+i).onclick = function(){changeNumA(i);};
})(i);
}
};
function changeNum(i)
{
var nums = document.getElementById("num"+i).value-0;
nums++;
document.getElementById("num"+i).value = nums;
}
function changeNumA(i)
{
var nums = document.getElementById("num"+i).value-0;
if(nums > 0){
nums--;
document.getElementById("num"+i).value = nums;
}
else{
document.getElementById("num"+i).value = 0;
}
}

。。。。。。要不要这么速度,本来第一个问题我快弄好了,刷新你已经解决了,好吧,。。然后我测试又发现那有bug,我解决了,再来刷新,你又回了。。。。。
天际的海浪 2015-07-27
  • 打赏
  • 举报
回复

window.onload = function()
{
for(var i=0;i<3;i++){
(function(i){
document.getElementById("c"+i).onclick = function(){changeNum(i);};
document.getElementById("b"+i).onclick = function(){changeNumA(i);};
})(i);
}
};
function changeNum(i)
{
var nums = document.getElementById("num"+i).value-0;
nums++;
document.getElementById("num"+i).value = nums;
}
function changeNumA(i)
{
var nums = document.getElementById("num"+i).value-0;
if(nums > 0){
nums--;
document.getElementById("num"+i).value = nums;
}
else{
document.getElementById("num"+i).value = 0;
}
}

天际的海浪 2015-07-27
  • 打赏
  • 举报
回复
window.onload = function() { for(var i=0;i<3;i++){ nums = document.getElementById("num"+i).value; (function(i){ document.getElementById("c"+i).onclick = function(){changeNum(i);}; document.getElementById("b"+i).onclick = function(){changeNumA(i);}; })(i); } };

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧