我有一个从WebSQL数据库中检索数据的脚本,然后剥离每个记录的第一个字母并构建一个数组以便稍后显示。
我只能访问for循环中的数组。任何帮助,将不胜感激。
$(document).ready(function(e) {
var init;
var len;
inits = [];
var db = openDatabase("contacts", "1.0", "contacts database", 5 * 1024 * 1024);
db.transaction(function(tx) {
tx.executeSql("SELECT * FROM names", [], function(tx, results) {
len = results.rows.length;
$("#recordcount ").text(len + " records found");
for (i = 0; i <= len; i++) {
var str = results.rows.item(i).lname;
init = str.substring(0, 1);
if ($.inArray(init, inits) !== -1) {} else {
inits.push(init[i]);
}
$.each(inits, function (index,value){
alert(index + ":" + value);
});
};
});
});
});
当尝试访问inits时,除非我在for循环中访问它,否则我得到的所有内容都是未定义的。
console.log(inits)
VM112:1 ["H", undefined, undefined]
THX。
答案 0 :(得分:0)
有很多事情发生我不太明白为什么, 安置等。
无论如何,请放手一搏。 (抱歉删除了jquery)
var init;
var len;
var inits = [];
var db = openDatabase("contacts", "1.0", "contacts database", 5 * 1024 * 1024);
db.transaction(function(tx) {
tx.executeSql("SELECT * FROM names", [], function(tx, results) {
len = results.rows.length;
recordcount.innerHTML = (len + " records found");
for (i = 0; i < len; i++) {
var str = results.rows.item(i).lname;
console.log('str: '+str);
init = str.substring(0, 1);
console.log('init: '+init);
if(inits.indexOf(init) === -1){
inits.push(init);
}
}
inits.forEach(function( index, value ) {
console.log(a);
});
//Done.
logIt();
});
});
function logIt(){
console.log(inits);
}