save.onclick=function(){
for (var i = 1; i < tb.getElementsByTagName('tr').length; i++) {
var tds=tb.getElementsByTagName('tr')[i].getElementsByTagName('td');
database.transaction(function(fx){
fx.executeSql(
"insert into class (id,name,age,sex)values(?,?,?,?)",
[tds[0].innerHTML,tds[1].innerHTML,tds[2].innerHTML,tds[3].innerHTML],
function(){
alert("insert success!!!");
},
function(){
alert("insert false!!!");
}
)
})
}
}

为什么我的js代码中的for循环只执行最后一次,是闭包造成的么,怎么解决吖
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 斯洛文尼亚旅游 2016-11-28 13:12关注
save.onclick = function () { for (var i = 1; i < tb.getElementsByTagName('tr').length; i++) { var tds = tb.getElementsByTagName('tr')[i].getElementsByTagName('td'); database.transaction( (function () { return function (fx) { fx.executeSql( "insert into class (id,name,age,sex)values(?,?,?,?)", [tds[0].innerHTML, tds[1].innerHTML, tds[2].innerHTML, tds[3].innerHTML], function () { alert("insert success!!!"); }, function () { alert("insert false!!!"); } ) } })(tds) ); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报