How to remove a class that starts with...?

javascript, jquery

Solution

`.removeClass()` accepts a function for removing classes and accepts index and old CSS value:

A function returning one or more space-separated class names to be removed. Receives the index position of the element in the set and the old class value as arguments.

You can remove the classname that starts with required name and keep the existing using:

$("div[class*='ativo']").removeClass (function (index, css) {
   return (css.match (/(^|\s)ativo\S+/g) || []).join(' ');
});

Working Demo

Problem

HTML ``` <div class="ativo37 and many other classes"></div> <div class="another classes here with ativo1"></div> <div class="here ativo9 and more two or three"></div> ``` JS ``` $("div[class^='ativo']").on("click", function(){ $(this).removeClass("^='ativo'"); // How to achieve it? }); ``` What can I do instead of `.removeClass("^='ativo'");`? JSFiddle

Original source

Related problems