将字典键用于getElementById

问题描述 投票:0回答:1

我已经将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);
    }
    
}
javascript
1个回答
0
投票
.substring(0, keyValuePairs[i].indexOf('='));

我将其更改为

.substring(1, keyValuePairs[i].indexOf('='));

并且效果很好。现在,所有键都只包含预期值,而不是“''值。”

热门问题
推荐问题
最新问题