在相同条件下的addClass工作时,removeClass不工作

时间:2019-11-26 10:05:06

标签: jquery

我有一些jQuery代码,当URL的一部分等于df = pd.DataFrame({'rowData': {k: json.dumps(v) for k, v in json.loads(jsonData).items()}}) print (df) rowData 0 {"columnA": "a", "columnB": "b"} 1 {"columnA": "c", "columnB": "d"} 中的URL时,应该删除一个类并添加另一个类:

a href

将“ submenu-on”类添加到其中navHref.indexOf(urlFull)> -1的菜单项中,但是没有删除“ submenu-empty”类吗?

2 个答案:

答案 0 :(得分:1)

此代码

 $(".submenu li a").addClass('submenu-empty');

即使条件为true,也会将其再次添加到每个标记中,因为它是在循环内添加的。

下面的代码应该可以工作

$(document).ready(function() {
    var url = location.pathname;
    var urlSplit = url.split('/');
    var urlFull = urlSplit[1] + '/' + urlSplit[2];
    $(".submenumoe > li").each(function() {
        var navHref = $(this).find("a").attr("href");
        if (navHref.indexOf(urlFull) > -1) {                     
            $(this).find("a").addClass('submenu-on');                   
        } else {
            $(this).find("a").addClass('submenu-empty');
        }   
    });
});

答案 1 :(得分:0)

您可以这样做。

请检查是否对您有帮助。

$(document).ready(function() {
    var url = "example.com/question/abc/xyz";
    var urlSplit = url.split('/');
    var urlFull = urlSplit[1] + '/' + urlSplit[2];
    $(".submenumoe > li").each(function() {
        var navHref = $(this).find("a");
        if (navHref.attr("href").indexOf(urlFull) > -1) {                    
            navHref.removeClass('submenu-empty').addClass('submenu-on'); 
        } else {
            navHref.addClass('submenu-empty').removeClass('submenu-on'); 
        }   
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="submenumoe">
  <li>
    <a href="question/abc">Demo</a>
  </li>
  <li>
    <a href="question/pqr">Demo 2</a>
  </li>
</ul>