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