即使选择了子元素,也要突出显示父元素(opencart)

时间:2012-06-16 15:32:42

标签: javascript parent-child drop-down-menu opencart

上周我用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>

非常感谢任何帮助。

P.S。对不起我的英语,如果你不明白我想做什么。

1 个答案:

答案 0 :(得分: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>