老师请问为什么我结果最后(游标加索引)跑不出来?
来源:3-7 indexDB-游标索引结合
Marcuse
2019-08-22 14:05:26
<script>
var request = indexedDB.open('testDBDong',1);
// console.log(request);
request.onsuccess = function () {
console.log('创建数据库成功')
}
request.onerror = function () {
console.log('创建数据库失败')
}
request.onupgradeneeded = function () {
var db = request.result;
var list1 = db.createObjectStore('test1',{autoIncrement:true});
list1.createIndex('test1','name',{unique:true});
}
var json = [{
"id":200,
"name":"Marcuse",
"age":"19"
},{
"id":201,
"name":"Busy",
"age":"22"
},{
"id":202,
"name":"Blue",
"age":"23"
}]
setTimeout(function(){
var db = request.result;
var transaction = db.transaction('test1','readwrite');
var store = transaction.objectStore('test1');
var index = store.index('test1');
var cursorNod = index.openCursor(IDBKeyRange.upperBound(200, true));
// var cursorNod = store.openCursor(IDBKeyRange.upperBound(202,true));
// console.log(cursorNod)
for(var i = 0;i < json.length;i++){
store.add(json[i])};
var content = store.get(1);
content.onsuccess = function () {
console.log(content.result)
}
index.get('Busy').onsuccess = function (e) {
console.log(e.target.result.name)
}
cursorNod.onsuccess = function () {
var result = cursorNod.result;
if (result) {
console.log(result.value)
result.continue();
}
}
},300)
</script>
1回答
好帮手慕星星
2019-08-22
同学你好,
在创建索引的时候设置的是name属性:
而通过游标判断的也应该是name属性值:
这里写的是id值吧,所以没有结果。
可以修改下哦:
这里换成202,id值在202以下的,但是不包括202:
需要将之前创建的数据清除掉:
然后重新打开页面创建数据库,一开始输出的结果中没有通过游标获取的值。然后需要将添加数据的代码注释掉:
刷新页面即可:
自己可以按照上面的步骤测试下,祝学习愉快!
相似问题