jquery - 如何使用 jquery each 方法将 html 元素添加到 html 集合的每个元素?
问题描述
我有一些li
元素,我想为每个元素添加一个很棒的字体图标。(我可以直接在 HTML 代码中执行此操作,但我想学习更动态地执行此操作)。我试过这个:
HTML:
<ul class="willHaveArrows">
<li>text 1</li>
<li>text 2</li>
<li>text 3</li>
<li>text 4</li>
<li>text 5</li>
</ul>
JS:
$('.willHaveArrows li').each((i, e) => e.prepend("<span class='fa fa-arrow-right'></span>"))
但是,我没有将span
元素添加到li
(显示字体真棒箭头),而是将字符串添加到其中。像这样:
<span class='fa fa-arrow-right'></span> text1
<span class='fa fa-arrow-right'></span> text2
<span class='fa fa-arrow-right'></span> text3
<span class='fa fa-arrow-right'></span> text4
<span class='fa fa-arrow-right'></span> text5
我怎样才能完成我想做的事情?
谢谢!
解决方案
您的代码不起作用,因为.each()
(e
在您的情况下) 的第二个参数不是 jQuery 元素,而是标准的 HTML 元素。非 jQuery prepend 方法不会将 HTML 字符串作为元素读取。
如果你想走 jQuery 路线(请先看下面!),你不需要 an,.each()
因为默认情况下 jQuery.prepend()
作用于集合中的所有项目。
$(".willHaveArrows > li").prepend("<span class='fa fa-arrow-right'></span>");
$(".willHaveArrows > li").prepend("<span class='fa fa-arrow-right'></span>");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<ul class="willHaveArrows">
<li>text 1</li>
<li>text 2</li>
<li>text 3</li>
<li>text 4</li>
<li>text 5</li>
</ul>
虽然我应该指出JavaScript(尤其是 jQuery)对于这个任务来说是多余的。在 CSS 中执行此操作效率更高。
.willHaveArrows > li::before {
font-family: "FontAwesome";
content: "\f061"; /* Unicode value from FontAwesome */
display: inline-block;
}
.willHaveArrows > li::before {
font-family: "FontAwesome";
content: "\f061";
display: inline-block;
}
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<ul class="willHaveArrows">
<li>text 1</li>
<li>text 2</li>
<li>text 3</li>
<li>text 4</li>
<li>text 5</li>
</ul>
对于那些使用 FontAwesome 5 及更高版本的用户,CSS 字体声明将为font-family: "Font Awesome 5 Free"
.
Unicode 值(如f061
上面的 CSS)可以从相应图标 ( arrow-right
) 的文档页面中检索。FontAwesome 还提供了Unicode Cheatsheet供快速参考。
推荐阅读
- java - JavaFX ListView 文件保存
- ruby-on-rails - 我可以在 jquery 上使用数字助手吗?
- c# - 带有 NetTopologySuite 的 npgsql 无法写入 3D 点
- c++ - 指向二叉树中新节点的指针
- asp.net-core - XUnit 尝试将 dll 添加到 TestProject
- docker - 将 MySQL 数据存储在图像文件中(格式化为 ext4)
- material-components-web - Material Component Web - MDCTab - 如何在 javascript 中设置活动选项卡
- php - 尝试执行 INSERT 命令时 PDO 不起作用
- rally - 我们可以创建自定义字段并将该信息汇总到 Rally 中的另一个字段吗
- python - 有没有一种简单的方法来实现 numpy.base_repr 的宽度?