You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用JavaScript添加Font Awesome<i>标签图标失败怎么办?

问题解决:JS添加Font Awesome图标失败的修复方案

核心问题分析

  • 文本覆盖图标:代码中先把<i>标签添加到div,随后用div.innerText = ...设置文本,这会直接清空div内所有已有内容(包括刚插入的图标标签),导致图标被覆盖。
  • 类名格式错误:第一个导航项的item_Class里fa -house包含多余空格,正确的类名应该是fa-house,空格会导致Font Awesome无法识别图标类。

修正后的代码

JavaScript代码

// Add side navbar
let left_navbarList = [
    {
        name: "Home",
        item_Class: "fa-solid fa-house", // 修正多余空格
    },
    {
        name: "Today",
        item_Class: "fa-light fa-calendar-days",
    },
    {
        name: "Upcoming",
        item_Class: "fa-regular fa-angle-up",
    },
    {
        name: "Complete",
        item_Class: "fa-regular fa-flag",
    },
    {
        name: "Setting",
        item_Class: "fa-regular fa-gears",
    },
]

let left_nabar = document.querySelector(".left-navbar-list");

// 循环生成所有导航项(可选,按需使用)
left_navbarList.forEach(item => {
    const div = document.createElement('div')
    div.className = "border-white border-solid rounded-3xl pl-3.5 p-1.5 bg-[#3D404A]"
    
    const i_tag = document.createElement('i');
    i_tag.className = item.item_Class;
    div.appendChild(i_tag);
    
    // 用文本节点添加名称,避免覆盖图标
    const textNode = document.createTextNode(` ${item.name}`); // 加空格分隔图标与文字
    div.appendChild(textNode);
    
    left_nabar.append(div);
});

// 若仅需生成第一个项,使用以下代码:
// const div = document.createElement('div')
// div.className = "border-white border-solid rounded-3xl pl-3.5 p-1.5 bg-[#3D404A]"
// const i_tag = document.createElement('i');
// i_tag.className = left_navbarList[0].item_Class;
// div.appendChild(i_tag);
// const textNode = document.createTextNode(` ${left_navbarList[0].name}`);
// div.appendChild(textNode);
// left_nabar.append(div);

HTML代码

<div class="left-navbar-list"></div>

补充说明

  • 用document.createTextNode()或div.insertAdjacentText('beforeend', ${item.name})添加文本,均可避免覆盖已有的子元素。
  • 确保Font Awesome脚本标签正确引入(你已插入头部,此部分无需调整),示例引入代码:
    <script src="https://cdn.jsdelivr.net/npm/font-awesome@6.4.0/js/all.min.js"></script>
    

内容的提问来源于stack exchange,提问作者usefull tech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:35:09