0

上周我用 opencart 创建了一个电子商店。现在我正在尝试自定义默认的顶部菜单。我想要做的是即使选择了子元素也保持父元素突出显示

我用这个 js 突出显示当前页面:

    <script type="text/javascript" >
function extractPageName(hrefString)
{
    var arr = hrefString.split('/');
    return  (arr.length < 2) ? hrefString : arr[arr.length-2].toLowerCase() + arr[arr.length-1].toLowerCase();
}

function setActiveMenu(arr, crtPage)
{
    for (var i=0; i < arr.length; i++)
    {
        if(extractPageName(arr[i].href) == crtPage)
        {
            if (arr[i].parentNode.tagName != "DIV")
            {
                arr[i].className = "current";
                arr[i].parentNode.className = "current";
            }
        }
    }
}

function setPage()
{
    hrefString = document.location.href ? document.location.href :document.location ;

    if (document.getElementById("menu") !=null)
    setActiveMenu(document.getElementById("menu").getElementsByTagName("a"),extractPageName(hrefString));
}


window.onload=function()
{
    setPage();
}

</script>

任何帮助将不胜感激。

ps对不起我的英语,如果你不明白我想要做什么。

4

1 回答 1

0

我想到了。Tooraj 给了我这个想法。这是我的代码:

<script type="text/javascript" >
function extractPageName(hrefString)
{
    var arr = hrefString.split('/');
    return  (arr.length < 2) ? hrefString : arr[arr.length-2].toLowerCase() + arr[arr.length-1].toLowerCase();
}

function setActiveMenu(arr, crtPage)
{
    for (var i=0; i < arr.length; i++)
    {
        if(extractPageName(arr[i].href) == crtPage)
        {
            if (arr[i].parentNode.parentNode.parentNode.parentNode.tagName != "DIV",
            arr[i].parentNode.tagName != "DIV")
            {
                arr[i].className = "current";               

                arr[i].parentNode.parentNode.parentNode.parentNode.className = "current";
                                arr[i].parentNode= "current";
            }
        }
    }
}

function setPage()
{
    hrefString = document.location.href ? document.location.href :document.location ;

    if (document.getElementById("menu") !=null)
    setActiveMenu(document.getElementById("menu").getElementsByTagName("a"),extractPageName(hrefString));

}





window.onload=function()
{
    setPage();
}

</script>
于 2012-06-17T03:28:57.710 回答