HTML5 / jQuery Mobile:如何将数据ID添加到列表项?

时间:2012-02-04 05:08:10

标签: jquery html5 sqlite jquery-mobile

我有一个无序列表,其中包含已附加HTML5网络数据库中的数据行的项目。 我试图将每行的id添加到其各自的列表项中,以便能够通过其id删除每个项目。 当我尝试删除项目时,无论我选择哪一项,添加的最后一项是被删除的项目。 此外,我只能在刷新页面之前一次删除一个项目。

到目前为止我的代码如下:

function refreshEntries() {
db.transaction(
    function(transaction) {
        transaction.executeSql(  
        'SELECT * FROM eyeshadowEntries', [],
            function (tx, result) {
                $("#eyeshadow ul").html("");
                for (var i=0; i < result.rows.length; i++) {
                    var row = result.rows.item(i);
                    var brand = $("<li>"+row.brand+", "+row.productName+", "+row.shade+", "+row.datePurchased+"</li>");
                    brand.data("entryId", row.id).addClass(row.id);
                    var deleteElem = $("<span></span>").addClass("delete").text("Delete");
                    deleteElem.appendTo(brand);
                    var brandLi = brand.appendTo("#eyeshadow ul");
                    brandLi.find(".delete").click(function(){
                        var clickedEntryId = brandLi.data("entryId");
                        deleteEntryById(clickedEntryId);
                        brandLi.remove();

                    });

                }
            },      
            errorHandler
        );
    }
);
}

function deleteEntryById(id) {
db.transaction(
    function (transaction) {
        transaction.executeSql('DELETE FROM eyeshadowEntries WHERE id=?;', [id], null, errorHandler);
    }
);
}

1 个答案:

答案 0 :(得分:0)

我对HTML5不太熟悉,但据我所知,你已经命名了数据entryID 它应该是

 transaction.executeSql('DELETE FROM eyeshadowEntries WHERE id=?;', [entryId], null, errorHandler);

我不能确定,因为我说我不熟悉HTML5