我已经将cookie信息存储在要调出的字典中,但是使用键在页面中查找元素时遇到了麻烦。当我运行以下代码时,信息将从cookie中的cookie中存储。我可以将字典信息输出到控制台中,一切看起来也不错。当我尝试使用该键时,找不到元素,但是当我使用元素的ID对span变量进行硬编码时(如var span = document.getElementById('bar');),它可以正常工作。最初,我认为这是一个强制转换问题,所以我尝试了String(key),但是那也不起作用。是类型问题吗?参考不正确?任何帮助将不胜感激,谢谢!
var dict = {};
function foo() {
//Break cookie into dictionary
var keyValuePairs = document.cookie.split(';');
for(var i = 0; i < keyValuePairs.length; i++) {
var name = keyValuePairs[i].substring(0, keyValuePairs[i].indexOf('='));
var value = keyValuePairs[i].substring(keyValuePairs[i].indexOf('=')+1);
dict[name] = value;
}
//Search for elements using key value
for (const [key, value] of Object.entries(dict)) {
var span = document.getElementById(key);
if(span) {
console.log("Element found named " + key);
} else {
console.log(key + " element not found.");
}
console.log(key, value);
}
}
.substring(0, keyValuePairs[i].indexOf('='));
我将其更改为
.substring(1, keyValuePairs[i].indexOf('='));
并且效果很好。现在,所有键都只包含预期值,而不是“''值。”