我希望能够使用一个以对象作为参数的函数更新文档中的任意数量的变量。我想要的是什么:
<span id="firstname"></span>
<span id="lastname"></span>
...
function updateStuff(obj) {
for (var key in obj) {
document.getElementById(key).innerHTML = valueAssociatedWithKey;
}
}
...
updateStuff({
firstname: "John",
lastname: "Doe"
})
最终结果将包含<span id="firstname">John</span>
和<span id="lastname">Doe</span>
有没有办法实现这个目标? 如果没有,是否有更好的选择?
对于那些熟悉RiotJS's self.update function的人,我实际上是尝试在JavaScript中重新创建它,而不需要将整个库拉入一个小函数。
注意:我想在没有任何库的情况下执行此操作,包括JQuery。
谢谢!
答案 0 :(得分:4)
您遗失的所有内容都是获取与密钥相关联的值,您可以通过obj[key]
获取该值。
示例:
function updateStuff(obj) {
for (var key in obj) {
document.getElementById(key).innerHTML = obj[key];
}
}
updateStuff({
firstname: "John",
lastname: "Doe"
});
JSFiddle演示:https://jsfiddle.net/xmhgxqj7/