0

我创建了一个 html5 本地数据库,我想循环查询并在查询回调中使用外部变量。

下面的例子不是我想做的,但它解释了我的问题:

代码:

db.transaction(function (tx)
{
  for (var i = 1; i < 4; i++)
   {
     tx.executeSql('SELECT title FROM podcast WHERE given_id = ' + i, undefined, function (tx, result)
      {
        console.log(result.rows.item(0).title);
        console.log(i);
      });
   }
});

日志:

episode1
4
episode2
4
episode3
4

结果是完美的,但我不能在回调中使用“i”,该值始终是循环结束时的值。如何在回调中使用外部变量?感谢

4

1 回答 1

0

Try this:

db.transaction(function (tx) {
   for (var i = 1; i < 4; i++) {
      tx.executeSql('SELECT title,given_id FROM podcast WHERE given_id = ' + i, undefined, function (tx, result) {
         console.log(result.rows.item(0).title);
         console.log(result.rows.item(0).given_id);
      });
   }
});
于 2012-07-24T07:57:47.930 回答