javascript - 如何将字体真棒图标动态添加到类元素?
问题描述
当我使用 Bootstrap 的警报时,我想为每个带有 .alert 类的元素使用 jQuery 在警报内容旁边添加一个图标。
例子:
<div class="alert alert-info">Please log in to process</div>
我想在警报内容之前添加字体真棒图标,结果如下:
<div class="alert alert-info"><i class="fas fa-info-circle"></i>Please log in to process</div>
为此,我使用了 jQuery prepend() 函数,如下所示:
$('.alert-info').prepend('<i class="fas fas-info-circle"></i>');
但是在调试时,似乎 jQuery 找不到任何具有.alert-info
类的元素,所以图标没有显示。我想这是浏览器执行上述功能时未加载 DOM 模型的问题,因此我编辑了此代码段以等待模型:
$(document).ready(function() {
$('.alert-info').prepend('<i class="fas fas-info-circle"></i>');
});
并添加了图标代码(<i>
元素),但只是作为没有图标的空白区域。
我已经搜索了任何解决方案,我发现一些信息表明字体真棒是解析<i>
元素并在浏览器呈现页面时将它们替换为<svg>
内容,但我不确定我是否正确理解该机制(来源:https://fontawesome .com/how-to-use/on-the-web/using-with/jquery)。
是否有任何选项可以使用 jQuery 动态添加字体真棒图标,或者我必须手动将图标添加到任何警报内容?
//编辑
我在外部文件中有我的 jQuery 代码,我认为这可能是问题所在,但是:
我已将此代码放入页面标签中,并且图标已正确呈现
将此代码复制到同一个外部文件中,现在它的工作就像伤害一样,但现在我无法复制以前的问题,所以仍然不知道为什么它没有更早地工作......
无论如何,谢谢你的帮助!:)
解决方案
您的代码运行良好 - 确保您已正确加载这两个库,并等待它们被请求和导入。
$(() => {
$(".alert-info").prepend(`<i class="fas fa-info-circle">`);
});
<link type="text/css" rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<div class="alert alert-info">Please log in to process</div>
推荐阅读
- c - 如何在 Windows 7 上记录网络带宽?
- https - HTTPS Web 应用程序与一组不断变化的 WebSocket 服务器通信
- android - 如何使用 1 个 GradientDrawable xml 资源制作 10 个具有 10 个不同边框角半径的 ImageView
- xml - 在 xslt 中创建嵌套循环
- python - 尝试打印文本时 Pygame 不更新显示
- javascript - 如何在没有setTimeout的情况下双击时防止单击触发
- c - C语言10行三角形图案打印:递增数字和递减字母
- visual-studio - pubspec.yaml 第 17 行第 5 列的错误:依赖项可能只有一个源
- java - 如何在 CircleCI 中查看测试结果的 HTML 表示
- c# - .NET Core 在发布中包含文件夹