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

时间:2014-10-24 07:59:02

标签: 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"><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()

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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");

现在它就像一个魅力!