jQuery 移除 Font Awesome 图标

Fli*_*oop 5 html javascript jquery replacewith

我在一个实验中使用了 Font Awesome 和 jQuery,在一个动画之后,jQuery 用一个检查替换了列表中的加载图标,并且文本也发生了变化。但是,当我删除 jQueryreplaceWith方法时,图标保持不变:

HTML:

<ul class="fa-ul">
        <li><i class="fa-li fa fa-spinner fa-spin" id = "ToDo1"></i>Downloading</li>
        <li><i class="fa-li fa fa-square" id = "ToDo2"></i>text</li>
        <li><i class="fa-li fa fa-square" id = "ToDo3"></i>text</li>
        <li><i class="fa-li fa fa-square" id = "ToDo4"></i>text</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

jQuery:

setTimeout(function() {
    $("#ToDo1").removeClass("fa-spin fa-spinner");
    $("#ToDo1").addClass("fa-check-square");
    $("li:first").replaceWith("Download Complete");
    $("#ToDo2").addClass("fa-spin fa-spinner");
}, 2000);
Run Code Online (Sandbox Code Playgroud)

结果:

前:

在此处输入图片说明

jQuery 之后 replaceWith

在此处输入图片说明

问题是什么?

Mob*_*ble 4

改变这个:

$("li:first").replaceWith("Download Complete");
Run Code Online (Sandbox Code Playgroud)

有了这个:

$("li:first").html('<i class="fa-li fa fa-square" id = "ToDo1"></i>Download Complete');
Run Code Online (Sandbox Code Playgroud)

但实际上,FlipFloop,您需要分别定位<i>元素和文本。将消息放入一个可以独立于标记替换定位的范围中,如下所示:

<li><i class="fa-li fa fa-square" id = "ToDo2"></i><span>text</span></li>


$("li:first i").removeClass("fa-spin fa-spinner").addClass("fa-check-square");
$("li:first span").text("Download Complete");
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。