DOMTokenList.replace()

The replace() method of the DOMTokenList interface replaces an existing token with a new token. If the first token doesn't exist, replace() returns false immediately, without adding the new token to the token list.

Syntax

tokenList.replace(oldToken, newToken);

Parameters

oldToken
A DOMString representing the token you want to replace.
newToken
A DOMString representing the token you want to replace oldToken with.

Return value

A boolean value, which is true if oldToken was successfully replaced, or false if not.

Note: In older browsers, replace() returns void.

Examples

In the following example we retrieve the list of classes set on a <span> element as a DOMTokenList using Element.classList. We then replace a token in the list, and write the list into the <span>'s Node.textContent.

First, the HTML:

<span class="a b c"></span>

Now the 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';
}

The output looks like this:

Polyfill

The following polyfill will add the replace method to the DOMTokenList class. The following code will only work with IE10-11. To use with earlier versions of IE, refer to the polyfill at element.classList#Polyfill

DOMTokenList.prototype.replace = function (a, b) {
    if (this.contains(a)) {
        this.add(b);
        this.remove(a);
        return true;
    }
    return false;
}

Specifications

Specification Status Comment
DOM
The definition of 'replace()' in that specification.
Living Standard Initial definition

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
replaceChrome Full support 61Edge Full support 17Firefox Full support 49IE No support NoOpera Full support 48Safari Full support 10.1WebView Android Full support 61Chrome Android Full support 61Firefox Android Full support 49Opera Android Full support 45Safari iOS Full support 10.3Samsung Internet Android Full support 8.0
return()'s value is a boolean, not void as it used to be.Chrome Full support 67Edge Full support 18Firefox Full support 61IE No support NoOpera Full support 54Safari Full support 12WebView Android Full support 67Chrome Android Full support 67Firefox Android Full support 61Opera Android Full support 48Safari iOS Full support 12Samsung Internet Android Full support 9.0

Legend

Full support
Full support
No support
No support