Показать сообщение отдельно
  #1 (permalink)  
Старый 02.12.2018, 19:33
Новичок на форуме
Отправить личное сообщение для Rovor Посмотреть профиль Найти все сообщения от Rovor
 
Регистрация: 02.12.2018
Сообщений: 4

Видимость переменной во вложенной функции
Здравствуйте, прошу помочь вот с чем.
Пишу скрипт который будет собирать информацию со страницы в WebSQL.
Но столкнулся с тем, что переменная счетчика цикла i не видна в функции tx. Подскажите, как исправить?

for (i=0;i<count.length;i++){
    db.transaction(function(tx) {
        tx.executeSql("INSERT INTO players (galaxy, system, planet, planetname, name, alliance) VALUES (?,?,?,?,?,?);",[galaxy,system,planet[i],planetname[i],player[i],alliance[i]]);});}


Здесь привожу полный текст скрипта:


var planet = Array();
var planetname = Array();
var player = Array();
var alliance = Array();
var i = 0;
var db = openDatabase("SK", "1", "Players", 200000);
//db.transaction(function(tx) {tx.executeSql("CREATE TABLE players (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, galaxy INT, system INTEGER, planet INTEGER, planetname TEXT, name TEXT, alliance TEXT);")});
var galaxy = Number($("[name='galaxy']")[0].value)
var system = Number($("[name='system']")[0].value)
var count = $(".galaxy_row");
    for (i=0;i<count.length;i++){
planet[i] = Number($(".galaxy_row")[i].children[1].innerText)
planetname[i] = $(".galaxy_row")[i].children[3].innerText
player[i] = $(".galaxy_row")[i].children[6].innerText
alliance[i] = $(".galaxy_row")[i].children[7].innerText
db.transaction(function(tx) {tx.executeSql("INSERT INTO players (galaxy, system, planet, planetname, name, alliance) VALUES (?,?,?,?,?,?);",[galaxy,system,planet[i],planetname[i],player[i],alliance[i]]);});

Последний раз редактировалось Rovor, 02.12.2018 в 19:36.
Ответить с цитированием