--- title: DOMTokenList.replace() slug: Web/API/DOMTokenList/replace translation_of: Web/API/DOMTokenList/replace ---
{{APIRef("DOM")}}
Метод replace() интерфейса {{domxref("DOMTokenList")}} заменяет существующий класс на новый класс. Если первый не существует, то replace() сразу же возвращает false, без добавления нового класса в список классов.
tokenList.replace(oldToken, newToken);
oldTokennewTokenoldToken.Boolean, которое будет true, если oldToken был успешно заменён, или false в противном случае.
Примечание: В старых браузерах replace() возвращает void.
В следующем примере мы получаем список классов, установленных в элементе {{htmlelement("span")}} как DOMTokenList, используя {{domxref("Element.classList")}}. Затем мы заменяем класс в списке и записываем список в {{domxref("Node.textContent")}}, принадлежащий <span>.
В HTML:
<span class="a b c"></span>
В JavaScript:
let span = document.querySelector("span");
let classes = span.classList;
let result = classes.replace("c", "z");
console.log(result);
if (result) {
span.textContent = classes;
} else {
span.textContent = 'token not replaced successfully';
}
Результат выглядит так:
{{ EmbedLiveSample('Примеры', '100%', 60) }}
Следующий полифил добавит метод replace в класс DOMTokenList. Следующий код будет работать только с IE10-11. Чтобы использовать с более ранними версиями IE, обратитесь к полифилу по {{domxref("element.classList#Polyfill")}}
DOMTokenList.prototype.replace = function (a, b) {
if (this.contains(a)) {
this.add(b);
this.remove(a);
return true;
}
return false;
}
{{Compat}}