问老师一个关于store.openCursor的问题
来源:3-6 indexDB-游标
学习plus
2020-10-25 18:30:19
# 具体遇到的问题
视频中老师打印value,就能只能打印出对象
我打印事件e
出现以下内容
想要打印出对象,得要这么写
视频中这个事件对象,就是指代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回答
同学你好,由于e.target可以用来实现事件委托,通过事件冒泡(或者事件捕获)给父元素添加事件监听,所以e.target指向引发触发事件的元素,因此这里的e.target指向requestNode。
祝学习愉快!
相似问题