我正在使用以下代码使用javascript查询sqlite数据库,一切正常:
function getQueryRecord(tx, rs) {
var stringResult = '';
for(i=0;i<rs.rows.length;i++)
{
r =rs.rows.item(0);
$('#someting').append(r['field1'] + ' ' + r['field2']);
}
}
function getUserGroup()
{
var db = window.openDatabase("scores", "", "Previous Scores", 1024*1000);
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM user_group', [], getQueryRecord);
});
}
是否有可能在getQueryRecord中执行以下操作以循环遍历所有字段?如果是,那么正确的语法是什么?
for(k=0;k<r.fields.length;i++)
{
$('#something').append(r[k]);
}
谢谢。
答案 0 :(得分:1)
您是否尝试过for...in
语法:
for(k in r) {
if (r.hasOwnProperty(k))
$('#something').append(r[k]);
}
在循环中k
将等于第一个属性的名称,然后是第二个属性等等(虽然已经说过&#34;第一个&#34;和&#34;第二个&#34;迭代的顺序是任意的。)
.hasOwnProperty()
的if语句是&#34;可选&#34;取决于你的对象结构/ heirarchy:它测试一个特定的属性是否是&#34; direct&#34;对象的属性或来自原型链上某处的属性(注意for ... in结构返回两种类型的属性)。如果您不确定是否需要它,那么您可能会这样做。
注意:此技术通常适用于JavaScript对象,而不是特定于数据库对象。