--- title: DOMTokenList.replace() slug: Web/API/DOMTokenList/replace tags: - API - DOM - Document - Method - Reference translation_of: Web/API/DOMTokenList/replace ---
{{APIRef("DOM")}}
replace() は {{domxref("DOMTokenList")}} インターフェイスのメソッドで、既存のトークンを新しいトークンで置き換えます。最初のトークンが存在しない場合、 replace() はすぐに false を返し、トークンリストに新しいトークンを追加しません。
tokenList.replace(oldToken, newToken);
oldTokennewTokenoldToken を置き換えたいトークンを表します。論理値で、 true は oldToken の置き換えに成功した場合で、 false はそれ以外の場合です。
注: 古いブラウザーでは、 replace() は void を返します。
以下の例では、 {{htmlelement("span")}} 要素に設定されたクラスのリストを DOMTokenList として受け取るのに {{domxref("Element.classList")}} を使用しています。それからリスト内のトークンを置き換え、リストを <span> の {{domxref("Node.textContent")}} に書き込みます。
最初に 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('Examples', '100%', 60) }}
次のポリフィルは DOMTokenList クラスに replace メソッドを追加します。次のコードは 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;
}
| 仕様書 | 状態 | 備考 |
|---|---|---|
| {{SpecName('DOM WHATWG','#dom-domtokenlist-replace','replace()')}} | {{Spec2('DOM WHATWG')}} | 初回定義 |
{{Compat("api.DOMTokenList.replace")}}