如何删除javascript中的类?

sta*_*002 2 javascript dom

<div id="tab1" class="nav left">
<ul>
<li><a href="/magento/" class="now">Home</a></li>
......
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,我想删除class="now"或将类值设置为空。如果 url 不在 mangento 上,我使用以下代码。但我不知道如何写最后一部分。

window.onload = function removeNow() {
    var div = document.getElementById("tab1").getElementsByTagName("a");
    if (window.location.pathname != '/magento/') {
        div.removeClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

0x4*_*2D2 6

在现代浏览器中,您可以使用classListAPI:

div.classList.remove( 'now' );
Run Code Online (Sandbox Code Playgroud)

但是您的代码特有一个问题:您必须循环才能删除该类。所以试试这个:

for ( var i = 0; i < div.length; i++ ) {

    div[i].classList.remove( 'now' );

}
Run Code Online (Sandbox Code Playgroud)

如果您的浏览器不支持classList,请使用此removeClass垫片:

function removeClass( elem, name ) {

    var classlist = elem.className.split( /\s/ ), 
        newlist = [], 
        idx = 0;

    for ( ; idx < classlist.length; idx++ ) {
        if ( classlist[ idx ] !== name ) {
            newlist.push( classlist[ idx ] );
        }
    }

    elem.className = newlist.join(" ");

    return true;
}
Run Code Online (Sandbox Code Playgroud)

或者使用jQuery(我们不需要使用classListor className):

$('a').each(function() {

    if (window.location.pathname != '/magento/')
        $(this).removeClass();

});
Run Code Online (Sandbox Code Playgroud)