i = 函数中未定义,谁在函数中
i = Undefined in a function who is in a function
在函数"Encaisser"中,"i"的值在for中是可以的,但是如果我在我的函数中调用"i","i"返回"Undefined。
function Encaisser()
{
for(var i=1; i <= Nombre_ligne_en_caisse; i++)
{
db.transaction(function(t,i){ t.executeSql('SELECT En_cour FROM Sequence WHERE Nom="Ticket_ID"', [], function(tx,rs,i){
var row = rs.rows.item(0);
var Tick_ID = row['En_Cour'];
var Noma = window['Produit_en_caisse_' + i] ;
alert(i); //Undefined
alert(Noma); //Undefined
}, [])});
alert(i); //If i put the alert here, its OK
}
}
你知道为什么吗?
谢谢
问题是你的内部函数在这里定义了一个名为i
的参数:
db.transaction(function(t,i){ ...
如果您打算将i
作为外部函数的值,我建议您直接删除此参数。无论如何,db.transaction
似乎并没有为此参数提供值。您可能还希望在单独的变量中关闭每次迭代时的 i
值,并在函数中使用它,如下所示:
var index = i;
db.transaction(function(t){ ...
var Noma = window['Produit_en_caisse_' + index ];
alert(index);
您可以在db.transaction
回调和t.executeSql
回调中重新定义i
。在t.executeSql
回调中,i
必须是未定义的。
如果要从 for 循环访问
i
的值,则需要在回调中重命名这些参数。
相关文章:
- 现有函数未定义
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- AngularJS ng repeat显示原型函数未定义
- jQuery onclick 函数:未定义不是一个函数
- 函数未定义
- 为什么在jsfiddle中显示ReferenceError:函数未定义
- 函数未定义,实际定义时为
- 函数未定义的Javascript(Basic)
- ajax函数未定义
- 为什么window.onload函数未定义
- 模块模式:函数未定义
- 包含的javascript源代码通过PHP,onmousemove事件,函数未定义
- 单击链接时出现函数未定义错误
- AngularJS和Angular Snap:SSnap构造函数未定义
- 在Node.js中,从同一文件中的另一个函数引用一个函数会导致'ReferenceError:-函数-未定义
- symfony trick javascript函数未定义
- 不断获取JS函数未定义错误
- AngularJS HTTP 资源 - 响应函数未定义
- 函数未定义,参数格式
- JavaScript 中的函数未定义