请问一下老师,为什么没有找到数据呢
来源:3-7 indexDB-游标索引结合
weixin_慕先生7015352
2020-10-23 18:32:05
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>indexedDB</title>
</head>
<body>
<script>
var request=indexedDB.open('testDB',32);
console.log(request);
request.onsuccess=function(){
console.log('数据库创建成功');
};
request.onerror=function(){
console.log('数据库读取失败');
};
request.onupgradeneeded=function(){
// console.log('版本号升级了'); // 版本号只能往上走,不能下降
var db=request.result;
var store= db.createObjectStore('test3',{keyPath:'id'});
store.createIndex('test3','age',{unique:true}); // unique:true是指唯一性,如果有多个同样的情况下,就不写入了
};
var json=[{
"id":1001,
"name":"leo",
"age":"23"
},{
"id":1002,
"name":"busy",
"age":"24"
},{
"id":1003,
"name":"blue",
"age":"25"
},{
"id":1004,
"name":"red",
"age":"27"
},{
"id":1005,
"name":"grt",
"age":"28"
}]
setTimeout(function(){
var db=request.result;
var transaction=db.transaction('test3','readwrite');
var store=transaction.objectStore('test3');
var index = store.index('test3');
var requestNode = index.openCursor(IDBKeyRange.upperBound(27));
requestNode.onsuccess = function(){
var cursor = requestNode.result;
if(cursor){
// console.log(cursor.value);
if(cursor.value.name == 'Leo'){
//console.log('1')
cursor.update({
"id":209,
"name":"Leoooo",
"age":25
});
}
console.log(cursor.value);
cursor.continue();
}
};
},300);
</script>
</body>
</html>
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学你好, 因为同学的json中的age属性是字符串类型的,但是设置游标指定上限时传入的值为数字,所以无法实查找数据,建议调整为字符串类型的就可以了。
祝学习愉快~
相似问题