Remove multiple classes with prefix

by zapjelly

HTML

<p>Remember to inspect element on the input below</p>
<div class="custom-nf">
  <div class="input nf-input-outer nf-validation">
    <div class="nf-container">
      <div class="nf-outer nf-outer-input nf-outer-validation">
        <div class="nf-middle">
          <div class="nf-inner">
            <label for="dummy" class="nf-label"></label>
            <input id="dummy" type="text" class="nf-input"></div>
        </div>
      </div>
    </div>
  </div>
</div>

JavaScript

//Array.prototype.forEach.call(nfClasses, function(element){

/*
Array.prototype.map.call( nodelist, function(n){

    console.log( n.innerHTML ); // writes the innerHTML of every p element.

});

*/

var nfClasses = document.querySelectorAll('.custom-nf [class*="nf-"]');

Array.prototype.map.call(nfClasses,
	function(elem){
  	Array.prototype.slice.call(elem.classList).map(
    	function(classStr){
      console.log("classStr "+classStr)
    		if(classStr.match(/^nf\-/)) elem.classList.remove(classStr);
        console.log("elem.classList "+elem.classList)
    	})
  });



/*
var nfClasses = document.querySelectorAll('.custom-nf [class*="nf-"]');
//var nfClasses = Array.prototype.slice.call(document.childNodes)
//console.log("test"+(document.childNodes))
Array.prototype.slice.call(nfClasses).map(
	function(elem){
  	//console.log(elem);
  	Array.prototype.slice.call(elem.classList).map(
    	function(classStr){
    		if(classStr.match(/^nf\-/)) elem.classList.remove(classStr);
    	}
    )
    //console.log(elem.classList);
  /*
  	elem.className = elem.className
    .split(' ')
    .reduce(
    	function(result, classStr){
    		if(! classStr.match(/^nf\-/)) result += classStr + ' ';
      	return result;
    	}
      ,'')
      */