簡體   English   中英

如何 - 將活動 Class 添加到當前元素

[英]How TO - Add Active Class to Current Element

我有一個側邊欄的 jsp 頁面,我想在有人點擊它時添加一個動作 class 。 我正在接受 w3schools.com 的指示。 鏈接 = https://www.w3schools.com/howto/howto_js_active_element.asp但我不確定如何更改它以匹配我的代碼,因為我是 javascript 新手。 有什么建議么?


<body>
<div class="col-md-3" id="DIV">
    <ul class="nav nav-pills nav-stacked hidden-sm hidden-xs">
        <li role="presentation" class="active"><a href="${webHome}/home">Dashboard</a></li>
        <li role="presentation"><a href="${webHome}/task">Task List</a></li>
        <li role="presentation" >
            <a href="${webHome}/app?domainId=${userSession.domainId}">Applications</a>
        </li>
    </ul>
</div>

<script>
    // Add active class to the current button (highlight it)
    var header = document.getElementById("DIV");
    var btns = header.getElementsByTagName("presentation");
    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener("click", function() {
            var current = document.getElementsByClassName("active");
            current[0].className = current[0].className.replace(" active", "");
            this.className += " active";
        });
    }
</script>
</body>

代替

var btns = header.getElementsByTagName("presentation");

const btns = header.querySelectorAll("li[role=presentation]");

https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll

像這樣為每個項目添加 id

        <li role="presentation" id="navDashboard"><a href="${webHome}/home">Dashboard</a></li>
        <li role="presentation" id="navTaskList"><a href="${webHome}/task">Task List</a></li>

並添加了這個 javascript 代碼

    const pathDashboard='/web/home';
    const pathTaskList='/web/task';
    const pathApplications ='/web/app';

    var path = window.location.pathname;

    if(path===pathDashboard){
        $('#navDashboard').each(function () {
                $(this).addClass('active');
        });
    }

    if(path===pathTaskList){
        $('#navTaskList').each(function () {
            $(this).addClass('active');
        });
    }

and so on...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM