window.alert消息未显示Sqlite行数据

window.alert message is not showing Sqlite row data

本文关键字:Sqlite 数据 显示 alert 消息 window      更新时间:2023-09-26

我正在用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>
.. 

"results.rows.item(i).data"显示我在"标记中使用数据时的数据。但是alert对话框从未被这部分弹出:

<tr onclick="alert('+results.rows.item(i).data+')"><td>'

我知道如果我像这个那样做,onClick显示i

<tr onclick="alert('+ i +')"><td>'

但我不明白为什么它不显示results.rows.item(i).dataresults.rows.item(i).data.toString()

有什么想法吗?

好!我找到了解决方案。在深入研究我的代码后,我意识到有了这段代码:

tblText +='<tr onclick="alert('+results.rows.item(i).data+');"><td>'

alert函数看起来像这样:

alert(rowdata); //Assume rowdata is a string from my database

所以很明显,Javascript会把rowdata看作一个变量,它将是undefinednull。所以我把代码改成了这个:

tblText +='<tr onclick="alert("'+results.rows.item(i).data+'");"><td>'

因此alert函数将如下所示:

alert("rowdata");

现在它就像一个符咒!