1

我正在尝试将我的 Select 语句的结果打印到我的 HTML 中的列表中。我正在使用 Web SQL(这是项目的要求)来存储我的表。

我的选择声明:

db.transaction(function (tx) {
   tx.executeSql('SELECT * FROM games', [], function (tx, results) {
                  var len = results.rows.length;
                  for (i=0; i <= len; i++){
                      $('#scores ul').append('<li><span class="alley">' + results.rows.item(i).alley + '</span><br><span class="date">' + results.rows.item(i).date + '</span></li>');
                  }
                });


});

当我运行我的代码时,它会正确显示列表中游戏表的所有记录,但我在此行收到“未捕获 RangeError:项目索引超出范围”错误:

$('#scores ul').append('<li><span class="alley">' + results.rows.item(i).alley + '</span><br><span class="date">' + results.rows.item(i).date + '</span></li>');

对此的任何见解将不胜感激

4

1 回答 1

0

这是因为您正在检查 的lengthrows而不是items。所以计数rows是抛出循环,它可能会超过items数组中的数量。

改变

 var len = results.rows.length;

进入

 var len = results.rows.item.length;

应该做的伎俩

于 2013-12-12T04:29:44.817 回答