JS循环添加事件

对于JS循环添加事件,就和网上遇到情况一样,输出的值一直都是那个循环的最大i值。如何添加循环事件呢?我也是在无意中突然想到的,以下代码供大家参考,希望对你们的编程有帮助。
for(var t = 0;t < isCheckName.length;t++){
Goodsid[t] = document.getElementById("Goodsid"+t);
Goods_id[t] = document.getElementById("Goods_id"+t);
Goods_name[t] = document.getElementById("Goods_name"+t);
provider[t] = document.getElementById("provider"+t);
Produce_place[t] = document.getElementById("Produce_place"+t);
Size[t] = document.getElementById("Size"+t);
Package[t] = document.getElementById("Package"+t);
Product_code[t] = document.getElementById("Product_code"+t);
Promit_code[t] = document.getElementById("Promit_code"+t);
Description[t] = document.getElementById("Description"+t);
Price[t] = document.getElementById("Price"+t);
Available[t] = document.getElementById("Available"+t);
isCheck[t] = document.getElementById("isCheck"+t);
}
var importGoodsListTr = new Array();//插入行

alert(new Date());

for( var n = 0;n<isCheck.length;n++){
[color=red] isCheck[n].value=n;
isCheck[n].οnclick=function(){
var i = this.value;[/color] if(isCheck[i].checked == true){
importGoodsListTr[i]= importGoodsList.insertRow(importGoodsList.rowIndex+1);

var importGoodsListTd0=importGoodsListTr[i].insertCell(0);
importGoodsListTd0.innerHTML=Goodsid[i].innerHTML;

var importGoodsListTd1=importGoodsListTr[i].insertCell(1);
importGoodsListTd1.innerHTML=Goods_id[i].innerHTML;

var importGoodsListTd2=importGoodsListTr[i].insertCell(2);
importGoodsListTd2.innerHTML=Goods_name[i].innerHTML;

var importGoodsListTd3=importGoodsListTr[i].insertCell(3);
importGoodsListTd3.innerHTML=provider[i].innerHTML;

var importGoodsListTd4=importGoodsListTr[i].insertCell(4);
importGoodsListTd4.innerHTML=Produce_place[i].innerHTML;

var importGoodsListTd5=importGoodsListTr[i].insertCell(5);
importGoodsListTd5.innerHTML=Size[i].innerHTML;

var importGoodsListTd6=importGoodsListTr[i].insertCell(6);
importGoodsListTd6.innerHTML=Package[i].innerHTML;

var importGoodsListTd7=importGoodsListTr[i].insertCell(7);
importGoodsListTd7.innerHTML=Product_code[i].innerHTML;

var importGoodsListTd8=importGoodsListTr[i].insertCell(8);
importGoodsListTd8.innerHTML=Promit_code[i].innerHTML;

var importGoodsListTd9=importGoodsListTr[i].insertCell(9);
importGoodsListTd9.innerHTML=Description[i].innerHTML;

var importGoodsListTd10=importGoodsListTr[i].insertCell(10);
importGoodsListTd10.innerHTML=Price[i].innerHTML;

var importGoodsListTd11=importGoodsListTr[i].insertCell(11);
importGoodsListTd11.innerHTML=Available[i].innerHTML;
}else{
importGoodsList.deleteRow(importGoodsList.rowIndex+1);
}
}
}
大家注意红色字体的内容:将需要循环添加事件的对象的value设定为循环变量n,此时如何操作其它的数组对象呢?重点的来了,那就是设置一个i变量:[size=large][color=red] var i = this.value;[/color][/size]这就得到了原来循环变量n的值,你现在就可以操作其它的数组对象了,比如: [color=red]var importGoodsListTd0=importGoodsListTr[i].insertCell(0);
importGoodsListTd0.innerHTML=Goodsid[i].innerHTML;[/color]。
好了,希望对大家有帮助。谢谢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值