首页 > 解决方案 > 可以与 IE 一起使用的 Object.entries 的替代方案

问题描述

几天前,我问过如何缩短我的代码。不久之后,我得到了答案,这太棒了。但是,我发现它在...中不起作用...猜猜看...(IE)。

这是代码:

for (var i = 0; i < 1; i++) {
    var title = document.querySelector("h1.title"),
        date = document.querySelector(".article-date"),
        tme = document.querySelector(".article-tme"),
        src = document.querySelector(".source"),
        user = document.querySelector(".user"),
        tip = document.querySelector(".tip");
        //.....some other variables...

    title.innerHTML = post[i].titles;
    date.innerHTML = post[i].dates;
    src.innerHTML = post[i].sources;
    tme.innerHTML = post[i].times;
    user.innerHTML = post[i].authors;
    tip.innerHTML = post[i].excerpts;
    //....some other HTML content setting...
}

这就是答案:

const selectorsByProp = {
  titles: 'h1.title',
  dates: '.article-date',
  sources: '.source',
  // ...
}
Object.entries(selectorsByProp).forEach(([prop, selector]) => {
  document.querySelector(selector).innerHTML = post[i][prop];
});

不幸的是,在 IE 中情况并非如此。相反,它显示一个空白页。我已经为 Object.entries 和 Object.key 使用 polyfill 强制执行它,但它仍然给我一个错误。谢谢你。

标签: javascripthtml

解决方案


推荐阅读