Javascript Indexeddb OpenCursor在特定键值上返回null

Javascript Indexeddb OpenCursor在特定键值上返回null,javascript,indexeddb,Javascript,Indexeddb,我正在使用Indexeddb,我有一个名为Items_S1的objectstore和KeyPath:“ItemID” 我在objectstore中有一些订单,订单ID、ItemID、ItemName、数量、价格和NetAmount。再次订购同一商品时,会增加其数量。。现在的问题是,当我点击任何记录旁边的按钮以减少其数量时,什么都没有发生。。。相同的代码正在另一个项目中工作,但在这里我有问题。。。我使用了OpenCursor(),但它返回null。请帮帮我,这是密码: $("#cart_menu"

我正在使用Indexeddb,我有一个名为Items_S1的objectstore和KeyPath:“ItemID” 我在objectstore中有一些订单,订单ID、ItemID、ItemName、数量、价格和NetAmount。再次订购同一商品时,会增加其数量。。现在的问题是,当我点击任何记录旁边的按钮以减少其数量时,什么都没有发生。。。相同的代码正在另一个项目中工作,但在这里我有问题。。。我使用了OpenCursor(),但它返回null。请帮帮我,这是密码:

$("#cart_menu").on("click", "#deselect", function(){

    var thisId = $(this).parent().parent().data("key");
    var transaction = db.transaction(["Item_S1"], "readwrite");  
    var objectstore = transaction.objectStore("Item_S1");

    objectstore.openCursor(thisId).onsuccess = function(e){
        var cursor = e.target.result;
        if(cursor){
            if(Number(cursor.value.ItemQty) > 1) {
                objectstore.put({
                        OrderID: cursor.value.OrderID,
                        ItemID: cursor.value.ItemID,
                        ItemName: cursor.value.ItemName,
                        ItemQty: Number(cursor.value.ItemQty) - 1,
                        ItemRate: cursor.value.ItemRate ,
                        ItemAmnt: (Number(cursor.value.ItemQty) - 1) * Number(cursor.value.ItemRate),
                        ItemID: cursor.value.ItemID
                });
            } else {
                objectstore.delete(cursor.value.ItemID);
            }
        }
    };

    transaction.oncomplete = function(){
         displayMenuItem();
    }; 

});

我的问题有了答案。。。我为objectstore创建了索引,然后使用IDBKeyRange.only()方法,它工作得非常好。。这是密码

$(“#购物车菜单”)。在(“单击”,“取消选择”,函数()上){

}))

var thisId = $(this).parent().parent().data("key");
var transaction = db.transaction(["Item_S1"], "readwrite");  
var objectstore = transaction.objectStore("Item_S1");
var indexvalue = objectstore.index("By_ItemID");

requestindex = indexvalue.openCursor(IDBKeyRange.only(thisId.toString()));
requestindex.onsuccess = function(){
var cursor = requestindex.result;
if(cursor){

if(Number(cursor.value.ItemQty) > 1)
    {
    objectstore.put({OrderID: cursor.value.OrderID, ItemID: cursor.value.ItemID, ItemName: cursor.value.ItemName, ItemQty: Number(cursor.value.ItemQty) - 1, ItemRate: cursor.value.ItemRate , ItemAmnt: (Number(cursor.value.ItemQty) - 1) * Number(cursor.value.ItemRate), ItemID: cursor.value.ItemID});
    }
    else{
    objectstore.delete(cursor.value.ItemID);
    }
    Total = Number($("#Text1").val()) - Number(cursor.value.ItemRate);
        $("#Text1").val(Total);
}


};

transaction.oncomplete = function(){
     displayMenuItem();
     };