Я хочу изменить значок начальной загрузки bi bi-caret-right-fill на bi bi-caret-down-fill.
<i onclick = "myFunction(this)" class = "bi bi-caret-right-fill"></i>
function myFunction(x) {
x.classList.toggle("bi bi-arrow-down-circle");
}
Так было бы: x.classList.toggle("bi-caret-right-fill"); x.classList.toggle("bi-arrow-down-circle"); не полагаться на порядок в fa css.
Обратите внимание, что classList.toggle не позволяет использовать несколько классов, вы должны (утомительно) делать их один за другим.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуй это:
<i onclick = "myFunction(this)" class = "bi bi-caret-right-fill"></i>
function myFunction(x) {
if (x.classList.contains("bi-caret-right-fill")) {
x.classList.remove("bi-caret-right-fill");
x.classList.add("bi-arrow-down-circle");
} else if (x.classList.contains("bi-arrow-down-circle")) {
x.classList.add("bi-caret-right-fill");
x.classList.remove("bi-arrow-down-circle");
}
}
В вашем случае вам нужно сделать так
Надеюсь, что это поможет вам
function myFunction(x) {
x.classList.toggle("bi-caret-right-fill");
x.classList.toggle("bi-arrow-down-circle");
}<link href = "https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css" rel = "stylesheet"/>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<i onclick = "myFunction(this)" class = "bi bi-caret-right-fill"></i>.classList.toggle("singleClass") работает просто хорошо, вы не используете имеют для добавления/удаления.
Да, правильно @freedomn-m Вы можете опубликовать ответ, если хотите.
Метод
toggleудаляет класс, если он уже установлен. Вы не хотите удалять классbi, так что ему вообще не место. Вы хотите переключитьbi-caret-right-fill(это уже установлено, и его нужно удалить) иbi-arrow-down-circle(это еще не установлено, поэтому его нужно добавить).