将具有特定 class 的所有 font awesome 5 图标更改为另一个 FA 图标 - JS/SVG
Change all font awesome 5 icons with a specific class to another FA icon - JS/SVG
假设我有 3 个 FA 图标:
<i class="fas fa-circle"></i>
<i class="fas fa-circle"></i>
<i class="fas fa-circle"></i>
我想将所有这些更改为:
<i class="far fa-circle"></i>
<i class="far fa-circle"></i>
<i class="far fa-circle"></i>
这意味着我正在修改这些图标的所有前缀,以便它们从实心变为常规。
在 FA 4.X 之前,我可以通过它们的 class 名称获取所有图标并像这样切换它们的 classes:
var icons = $(".icon");
icons.removeClass("fa-circle");
icons.addClass("fa-circle-o");
但现在它们是 SVG,我不知道如何获取它们并更改它们的前缀。
我知道我可以像这样更改前缀:
if (prefix === 'fas') {
icon.attr('data-prefix', 'far');
icon.css({ color: "#d6d6d6" });
} else {
icon.attr('data-prefix', 'fas');
icon.css({ color: "#3fcf8e" });
}
我只需要知道如何获取所有图标,这样我就可以遍历它们并更改它们的前缀。
据我了解...
您可以随时使用您的代码来完成,您只需要将 fas
替换为 far
:
var icons = $(".icon");
icons.removeClass("fas");
icons.addClass("far");
// Note that this could be simplified to:
// icons.toggleClass('far fas');
<script defer src="https://use.fontawesome.com/releases/v5.2.0/js/all.js" integrity="sha384-4oV5EgaV02iISL2ban6c/RmotsABqE4yZxZLcYMAdG7FAPsyHYAPpywE9PJo+Khy" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
fas: <i class="fas fa-circle"></i>
far: <i class="far fa-circle"></i>
<br><br>
<i class="icon fas fa-circle"></i>
<i class="icon fas fa-circle"></i>
<i class="icon fas fa-circle"></i>
希望对您有所帮助。
我刚刚意识到我可以更改具有特定 class 的所有内容的 data-prefix
属性。
$(".icon").attr('data-prefix', 'far');
假设我有 3 个 FA 图标:
<i class="fas fa-circle"></i>
<i class="fas fa-circle"></i>
<i class="fas fa-circle"></i>
我想将所有这些更改为:
<i class="far fa-circle"></i>
<i class="far fa-circle"></i>
<i class="far fa-circle"></i>
这意味着我正在修改这些图标的所有前缀,以便它们从实心变为常规。
在 FA 4.X 之前,我可以通过它们的 class 名称获取所有图标并像这样切换它们的 classes:
var icons = $(".icon");
icons.removeClass("fa-circle");
icons.addClass("fa-circle-o");
但现在它们是 SVG,我不知道如何获取它们并更改它们的前缀。
我知道我可以像这样更改前缀:
if (prefix === 'fas') {
icon.attr('data-prefix', 'far');
icon.css({ color: "#d6d6d6" });
} else {
icon.attr('data-prefix', 'fas');
icon.css({ color: "#3fcf8e" });
}
我只需要知道如何获取所有图标,这样我就可以遍历它们并更改它们的前缀。
据我了解...
您可以随时使用您的代码来完成,您只需要将 fas
替换为 far
:
var icons = $(".icon");
icons.removeClass("fas");
icons.addClass("far");
// Note that this could be simplified to:
// icons.toggleClass('far fas');
<script defer src="https://use.fontawesome.com/releases/v5.2.0/js/all.js" integrity="sha384-4oV5EgaV02iISL2ban6c/RmotsABqE4yZxZLcYMAdG7FAPsyHYAPpywE9PJo+Khy" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
fas: <i class="fas fa-circle"></i>
far: <i class="far fa-circle"></i>
<br><br>
<i class="icon fas fa-circle"></i>
<i class="icon fas fa-circle"></i>
<i class="icon fas fa-circle"></i>
希望对您有所帮助。
我刚刚意识到我可以更改具有特定 class 的所有内容的 data-prefix
属性。
$(".icon").attr('data-prefix', 'far');