如何使用JavaScript处理SQLite中snippet()的返回值?

时间:2013-11-30 16:05:48

标签: javascript jquery sqlite

我无法弄清楚如何在SQLite中访问snippet()搜索的返回值。如果我这样搜索:

query = "SELECT * FROM guidelines WHERE guidelines MATCH '" + search + "*';";

然后我得到一个对象,其值对应于我可以轻松访问的列名。这会打印出正确的值:

$('#lbResult').append('<br/> Search result:' + row.category + ' ' + row.id + ' ' + row.header + '<br/>');

但是如果我用snippet()函数搜索,就像这样:

query = "SELECT snippet(guidelines) FROM guidelines WHERE guidelines MATCH '" + search + "*';";

然后尝试打印结果:

transaction.executeSql(query,[], function(transaction, result) {
                    if (result != null && result.rows != null) {
                        $('#lbResult').html('');
                        for (var i = 0; i < result.rows.length; i++) {
                            var row = result.rows.item(i);
                            $('#lbResult').append('<br/> ' + row);
                        }
                    }
                });

然后我为每个返回的结果获取一个Object Object。我得到了正确的返回结果数,因此搜索工作正常,我只是不知道如何在JavaScript中定位此值。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我搜索了高和低这个答案很低。最后,我通过为返回对象的各个级别运行for key in (object)循环来获得它,结果证明它适用于item

  transaction.executeSql(query,[], function(transaction, result) {

                    if (result != null && result.rows != null) {
                        $('#lbResult').html('');

                        for (var i = 0; i < result.rows.length; i++) {
                            var row = result.rows.item(i);

                            for(var key in row) {
                                var value = row[key]; //this gives the string value of the returned snippet
                                $('#lbResult').append('<br/> ' + value );
                            }
                        }
                    }

                },nullHandler,errorHandler);

答案 1 :(得分:0)

列名snippet(guidelines)不能用作JavaScript中的名称。

您可以通过行中的索引检索列值,但如果您为列添加另一个名称,代码会更清晰:

query = "SELECT snippet(guidelines) AS snips FROM ..:";
... 
value = row.snips;