gpt4 book ai didi

javascript - jQuery 使用 transaction.executeSql() 返回未定义

转载 作者:行者123 更新时间:2023-11-30 06:32:59 25 4
gpt4 key购买 nike

我正在尝试使用 jqm 应用程序的 web sql 数据库中的数据填充 html 标记。这是我的代码:

 $("#profile").on("pageinit", function () {
db.transaction(function (transaction) {
var sql = "CREATE TABLE IF NOT EXISTS profile " +
" (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
"nickname VARCHAR(100) NOT NULL," +
"tankVol VARCHAR(100) NOT NULL," +
"waterType VARCHAR(100) NOT NULL," +
"category VARCHAR(100) NOT NULL)"
transaction.executeSql(sql, undefined);

var sqlNickname = "SELECT nickname FROM profile";
transaction.executeSql(sqlNickname, undefined, function (transaction, result) {
var ul = "<ul>";
if (result.rows.length) {
for (var i = 0; i < result.rows.length; i++) {
var row = result.rows.item;
var nickname = row.nickname;
ul += "<li>" + nickname + "</li>";
ul += "</ul>";

}
}
var $profileNickname = $("#profile div:jqmData(role=content)");
$profileNickname.html(ul);
var $nicknameContent = $profileNickname.find("ul");
$nicknameContent.listview();
}, error);
});
});

我使用的表总是只有一条记录,所以我不确定是否需要使用 for 循环遍历表。我认为问题出在线路上:

transaction.executeSql (sqlNickname, undefined,

因为表格工作正常并且 html 正在正确创建但是在列表项元素中我得到字符串“undefined”而不是表格的昵称列中的值。感谢您的帮助!

最佳答案

首先,您要关闭循环内的 ul 标签。如果结果集中有超过 1 个条目,您将获得一个开始标记的多个结束标记。将该结束标记放在循环之外。

但是你得到的错误是这样的:

var row = result.rows.item;

将此更改为:

var row = result.rows.item(i);

所以程序知道要从结果集中取出哪一行。即使对于单个结果,这也是必要的。

关于javascript - jQuery 使用 transaction.executeSql() 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16376369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com