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

标签 javascript jquery jquery-mobile

我正在尝试使用 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/

相关文章:

javascript - 全局 ESLint 覆盖项目 ESLint

javascript - react : Access ref passed between components via render props

javascript - 创建绑定(bind)生成的对象的新实例

css - 一旦 IE8 问题,单击按钮后禁用按钮

javascript - Bootstrap 3.7 中的 anchor 链接不起作用

javascript - 保存联系方式到手机

jquery - 我如何更改选择 Jquery 中的默认选项

javascript - Phonegap - native 启动画面和 index.html 之间的空白屏幕

javascript - 将数据列表获取为 HTML,从 JavaScript 中的 Controller 中选择

jquery - 设置 JQuery UI slider 的样式