Javascript window.alert消息未显示Sqlite行数据
我正在通过Javascript window.alert消息未显示Sqlite行数据,javascript,android,sqlite,cordova,Javascript,Android,Sqlite,Cordova,我正在通过Cordova开发一款android应用程序。我正在从Sqlite表中读取值,并使用Javascript显示到表中 function queryDB(tx) { tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); } function querySuccess(tx, results) { var tblText='<table id="t01"><t
Cordova
开发一款android应用程序。我正在从Sqlite表中读取值,并使用Javascript
显示到表中
function queryDB(tx) {
tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
var tblText='<table id="t01"><tr><th>ID</th> <th>Name</th> </tr>';
var len = results.rows.length;
for (var i = 0; i < len; i++) {
tblText +='<tr onclick="alert('+results.rows.item(i).data+')"><td>' + results.rows.item(i).id +'</td><td>'+ results.rows.item(i).data+'</td></tr>';
}
tblText +="</table>";
document.getElementById("tblDiv").innerHTML =tblText;
}
..
<body>
..
<div id="tblDiv"></div>
..
</body>
..
我知道如果我这样做,onClick
会显示I
<tr onclick="alert('+ i +')"><td>'
'
但我不明白为什么它不显示results.rows.item(I).data
或results.rows.item(I).data.toString()
有什么想法吗?好的!我找到了解决办法。在深入研究我的代码后,我意识到使用这段代码:
tblText +='<tr onclick="alert('+results.rows.item(i).data+');"><td>'
因此显然Javascript
将rowdata
视为一个变量,该变量将未定义
或null
。因此,我将代码更改为:
tblText +='<tr onclick="alert("'+results.rows.item(i).data+'");"><td>'
现在它就像一个符咒 您不能像这样获取(results.rows.item(i).data
outside querySuccess function
)分配一些变量或分配给某些字段以获取值。您需要使用JSON.stringify()
函数。e、 gJSON.stringify(results.rows.item(i).data)
来获取值。@frank我应该这样使用它吗?
alert(rowdata); //Assume rowdata is a string from my database
tblText +='<tr onclick="alert("'+results.rows.item(i).data+'");"><td>'
alert("rowdata");