Javascript WebStorage-executeSql提供的undefined不是for循环中的函数
这是我的密码: 给定一个对象,我试图在webStorage数据库中插入一些数据。问题是控制台返回我一个“未定义的不是函数”,我不知道为什么 下面是我的代码片段Javascript WebStorage-executeSql提供的undefined不是for循环中的函数,javascript,web-storage,Javascript,Web Storage,这是我的密码: 给定一个对象,我试图在webStorage数据库中插入一些数据。问题是控制台返回我一个“未定义的不是函数”,我不知道为什么 下面是我的代码片段 试试看{ db=openDatabase(“mca”,“1.0”,“db mca”,200000); 数据库事务(功能(tx){ tx.executeSql(“创建表,如果不存在计划\材料(id整数主键自动递增,计划\ id整数,材料\ id整数,材料\名称文本)”,[]); },onDbError,fillDb); }捕获(e){ 警报
试试看{
db=openDatabase(“mca”,“1.0”,“db mca”,200000);
数据库事务(功能(tx){
tx.executeSql(“创建表,如果不存在计划\材料(id整数主键自动递增,计划\ id整数,材料\ id整数,材料\名称文本)”,[]);
},onDbError,fillDb);
}捕获(e){
警报(“网站存储错误”);
}
函数回调\计划\材料(obj){
控制台日志(obj);
数据库事务(功能(tx){
对于(变量k=0;k }
tx2
未定义,不应为tx
tx.execuseSql("INSERT INTO planning_x_material(planning_id, material_id, material_name) VALUES (?, ?, ?)", [planning.id, material.id, material.name]);
onDbError
未定义tx
nottx2
executeSql
notexecuseSql
try {
db = openDatabase("mca", "1.0", "db mca", 200000);
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS planning_x_material(id INTEGER PRIMARY KEY AUTOINCREMENT, planning_id INTEGER, material_id INTEGER, material_name TEXT)", []);
}, onDbError, fillDb);
} catch(e) {
console.log("webstorage error",e);
}
function onDbError(tx, err){
console.log('There is error', err);
}
function callback_planning_material(obj) {
console.log(obj);
db.transaction(function(tx) {
for(var k = 0; k < obj.length; k++) {
for (var i = 0; i < obj[k].material.length; i++) {
(function (k, i) {
var planning = obj[k];
var material = planning.material[i];
tx.executeSql("INSERT INTO planning_x_material(planning_id, material_id, material_name) VALUES (?, ?, ?)", [planning.id, material.id, material.name]); // here console gives me "undefined is not a function" error
})(k, i);
}
}
}, onDbError);
}
function fillDb() {
// example object
var obj = [
{
id: 1,
name: "name 1",
material: [
{ id: 1, name: "mat. 1" },
{ id: 2, name: "mat. 2" },
]
},
{
id: 2,
name: "name 2",
material: [
{ id: 3, name: "mat. 3" },
{ id: 4, name: "mat. 4" },
]
}
];
callback_planning_material(obj);
}
试试看{
db=openDatabase(“mca”,“1.0”,“db mca”,200000);
数据库事务(功能(tx){
tx.executeSql(“创建表,如果不存在计划\材料(id整数主键自动递增,计划\ id整数,材料\ id整数,材料\名称文本)”,[]);
},onDbError,fillDb);
}捕获(e){
日志(“Web存储错误”,e);
}
功能onDbError(发送、错误){
console.log('有错误',err);
}
函数回调\计划\材料(obj){
控制台日志(obj);
数据库事务(功能(tx){
对于(变量k=0;k
您有tx.execuseSql
,应该是tx.executeSql
tx2
是一个打字错误,将我的文件转换为SO问题。onDbError也在我的文件中定义,只是与这个问题无关。我猜这只是execuTeSql
上的一个愚蠢的输入错误。。我太笨了!谢谢-在23小时自动取款机之前不能奖励