【发布时间】:2022-01-01 10:24:39
【问题描述】:
我有这个代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./framework.js"></script>
</head>
<body>
<p f-text="name"></p>
<script>
Framework.store('name', 'Joe');
</script>
</body>
</html>
document.querySelectorAll('*').forEach((element) => {
if (element.hasAttribute('f-text')) {
const textValue = element.getAttribute('f-text');
element.innerHTML = window.fStore[textValue];
}
});
window.Framework = {
store: (key, value = '') => {
if (value === '') {
return window.fStore[key];
}
window.fStore[key] = value;
}
}
但是得到这个错误:
TypeError: Cannot set properties of undefined (setting 'name')
at Object.store (/framework.js:15:24)
at /:12:15
我希望页面通过从f-text 获取密钥,在window.fStore 中找到密钥的值,然后将element.innerHTML 设置为值来呈现“Joe”。 Framework.store() 接受一个键和一个值,如果没有值,则从 window.fStore 中的键返回值,如果有则将 window.fStore[key] 设置为值。
【问题讨论】:
标签: javascript html undefined typeerror key-value