查询websql表时未捕获的IndexSizeError

时间:2014-09-16 15:39:00

标签: javascript jquery sql

我在“keyup”上查询一个websql表,所以它返回查询字符串前10个匹配项的列表,我把这个搜索字符串保存在一个名为currval的变量中,我将其传递给查询字符串

当我的结果集等于1行时,即完全匹配时,我得到以下错误:

Uncaught IndexSizeError:无法在'SQLResultSetRowList'上执行'item':提供的索引(1)大于或等于最大边界(1)。

我的表格如下:

id |  name

并包含2500行。

继承人查询:

tx.executeSql("SELECT * FROM classes WHERE name LIKE '"+currval+"%' ", 
[], function (tx, results) {
      var len = results.rows.length;
      for (var i = 0; i < 10; i++) {
          var item = results.rows.item(i);
          var name = item.name;

          $('#classnameresults').append('<li class="classnameitem">'+name+'</li>');
      }

});

1 个答案:

答案 0 :(得分:0)

不应该

...
for (var i = 0; i < Math.max(len, 10); i++) {

否则如果结果数小于10,则在尝试访问不存在的项时会出错。