我无法弄清楚如何在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中定位此值。有什么建议吗?
答案 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;