老师请问为什么我结果最后(游标加索引)跑不出来?

来源: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属性:

http://img.mukewang.com/climg/5d5e571800012f9205160179.jpg

而通过游标判断的也应该是name属性值:

http://img.mukewang.com/climg/5d5e573700011a9006200037.jpg

这里写的是id值吧,所以没有结果。

可以修改下哦:

http://img.mukewang.com/climg/5d5e57580001cb2607560241.jpg
http://img.mukewang.com/climg/5d5e57850001a94906020135.jpg

这里换成202,id值在202以下的,但是不包括202:

http://img.mukewang.com/climg/5d5e57c500019b8707610061.jpg


需要将之前创建的数据清除掉:

http://img.mukewang.com/climg/5d5e57a600015e1106290409.jpg

然后重新打开页面创建数据库,一开始输出的结果中没有通过游标获取的值。然后需要将添加数据的代码注释掉:

http://img.mukewang.com/climg/5d5e580b0001cdff04680128.jpg

刷新页面即可:

http://img.mukewang.com/climg/5d5e581c0001cdbe04280075.jpg

自己可以按照上面的步骤测试下,祝学习愉快!

1

0 学习 · 6815 问题

查看课程