使用Phonegap及其SQL函数,我以
的形式返回查询results.rows.item(i).Title
其中results.rows.item(i)是每个对象,而.Title将指定要选择的字段。
这只是几个字段中的一个,所以我没有多次将它写成一个大字,而是想将它声明为一个变量。
var details = "results.rows.item(i).Title + \' \' " +
"+ results.rows.item(i).Street + ' ' " +
"+ results.rows.item(i).PostalCode + ' ' " +
"+ results.rows.item(i).Contact + ' ' " +
"+ results.rows.item(i).ContactEmail + ' ' " +
"+ results.rows.item(i).ContactPhone + ' ' " +
"+ results.rows.item(i).OperatingHours + ' ' " +
"+ results.rows.item(i).Operator + '</p></div>'"
当然,由此产生的问题是,当我尝试在以下行中使用时,它是一个字符串
$("#locations").append('<div data-role="collapsible"><h3>' + results.rows.item(i).Title + '</h3><p>' + details);
我该怎么办?
感谢。
答案 0 :(得分:2)
如果我的问题正确无效,那么您可以使用括号表示法而不是点符号来将字符串用作属性名称:
var details = [];
var item = results.rows.item(i);
["Title", "Street", "PostalCode", "Contact", "ContactEmail", "ContactPhone", "OperatingHours", "Operator"].forEach(function(field) {
details[details.length] = item[field];
});
details = details.join(' ');
(请注意,它使用ES5的forEach
。如果您可能没有在启用ES5的环境中运行,则可以使用填充程序[或重写上述内容以使用for
循环]。)
基本上,在JavaScript中,您有两个用于访问对象属性的选项:您可以使用带有点的文字属性名称,例如foo.bar
;或者您可以使用带有字符串的括号表示法,例如foo["bar"]
。在后一种情况下,字符串不必是字符串文字,它可以是任何表达式的结果。因此,所有这些都输出bar
的{{1}}属性:
foo
答案 1 :(得分:1)
这将附加当前行中所有字段的值
var rowData = results.rows.item(i);
var fieldName,fieldValue;
for(var fieldName in rowData) {
fieldValue = rowData[fieldName];
$("#locations").append('<div data-role="collapsible"><h3>' + fieldValue + '</h3><p>' + details);
}