你如何循环javascript记录集中的字段名称?

时间:2011-11-09 06:01:20

标签: javascript sqlite

我正在使用以下代码使用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]);
}

谢谢。

1 个答案:

答案 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对象,而不是特定于数据库对象。