Remove classname from element with javascript

前端 未结 4 1983
忘掉有多难
忘掉有多难 2020-12-24 07:35

I found the following regex from another Stack Overflow question: Change an element's class with JavaScript

And have used it in part of my script with success, h

相关标签:
4条回答
  • 2020-12-24 08:16

    There is also a solution which use the word boundary metacharacter \b:

    foo.className.replace(/\bbar\b/g ,'');
    

    This can suite somebody, but be aware the word boundary occurs also between a word character [A-Za-z0-9_] and the dash - character. Therefore a class name e.g. 'different-bar-class' would also be replaced resulting in 'different--class'. However, as opposed to the above solutions, the "\b" solution doesn't remove the whitespace character \s before the class name, which may be desired, so a string e.g. 'firstbar bar' will end up as 'firstbar '.

    0 讨论(0)
  • 2020-12-24 08:29

    Don't forget about classList.

    el.classList.remove('boop');

    http://jsfiddle.net/yXQL3/

    0 讨论(0)
  • 2020-12-24 08:32
    foo.className = foo.className.replace( /(?:^|\s)bar(?!\S)/ , '' );
    

    or with jQuery (which you seem to be using):

    foo.removeClass( 'bar' );
    
    0 讨论(0)
  • 2020-12-24 08:33

    That's because replace doesn't actually modify the string you call it on; rather, it returns a new string. So:

         foo.className = foo.className.replace( /(?:^|\s)bar(?!\S)/ , '' )
    

    (By the way, you don't actually need to do this in raw JavaScript, since jQuery objects offer a removeClass method: http://api.jquery.com/removeClass/. So you could write:

         $('#foo').removeClass('bar');
    

    or:

         $(foo).removeClass('bar');
    

    )

    0 讨论(0)
提交回复
热议问题