问老师一个关于store.openCursor的问题

来源:3-6 indexDB-游标

学习plus

2020-10-25 18:30:19

# 具体遇到的问题
视频中老师打印value,就能只能打印出对象

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

我打印事件e

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

出现以下内容

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

想要打印出对象,得要这么写

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

视频中这个事件对象,就是指代target吗?

requestNode就是e.target?

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<ul id="data"></ul>

<script type="text/javascript">

var dataShow = document.querySelector('#data');

var request = indexedDB.open('testDB',9);

request.onsuccess = function(){

console.log('数据库创建或打开成功')

};

request.onerror = function(){

console.log('数据库读取失败')

};

request.onupgradeneeded = function(){

var db = request.result;

console.log('数据库版本升级成功,当前版本号为' + db.version)

var store = db.createObjectStore('test_' + db.version,{keyPath:'id'});

store.createIndex('test1_' + db.version,'name',{unique:false});

store.createIndex('test2_' + db.version,'age',{unique:false});

}


var json = [{

"id":322,

"name":"Lan",

"age":33

},{

"id":21,

"name":"Sky",

"age":21

},{

"id":340,

"name":"Blue",

"age":55

},{

"id":53,

"name":"Tom",

"age":15

},]


setTimeout(function(){

var db = request.result;

var transaction = db.transaction('test_' + request.result.version,'readwrite');

var store = transaction.objectStore('test_'+request.result.version);


for(var i=0; i<json.length; i++){

store.add(json[i]);

}


var index = store.index('test2_' + db.version);

index.get(55).onsuccess = function(e){

console.log(e)

}


var requestNode = store.openCursor(IDBKeyRange.only(340));

requestNode.onsuccess = function(e){

console.log(e)

console.log(requestNode.result.value)

}

},300);

</script>

</body>

</html>


写回答

1回答

樱桃小胖子

2020-10-25

同学你好,由于e.target可以用来实现事件委托,通过事件冒泡(或者事件捕获)给父元素添加事件监听,所以e.target指向引发触发事件的元素,因此这里的e.target指向requestNode。

祝学习愉快!

0

0 学习 · 6815 问题

查看课程