Javascript 即使选择了子元素,也要高亮显示父元素(opencart)

Javascript 即使选择了子元素,也要高亮显示父元素(opencart),javascript,parent-child,drop-down-menu,opencart,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 : a

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

函数extractPageName(hrefString)
{
var arr=hrefString.split('/');
返回(arr.length<2)?hrefString:arr[arr.length-2].toLowerCase()+arr[arr.length-1].toLowerCase();
}
功能设置活动菜单(arr、CRT页面)
{
对于(变量i=0;i
任何帮助都将不胜感激


p、 如果你不明白我想做什么,请原谅我的英语。

我想出来了。图拉给了我这个主意。这是我的密码:

<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>

函数extractPageName(hrefString)
{
var arr=hrefString.split('/');
返回(arr.length<2)?hrefString:arr[arr.length-2].toLowerCase()+arr[arr.length-1].toLowerCase();
}
功能设置活动菜单(arr、CRT页面)
{
对于(变量i=0;i
请告诉我们有关该问题的更多信息。好的。上面的代码仅突出显示当前类别。我想做的是,当我点击一个子项时,也要突出显示父项。是的,你需要得到子项父项并为其设置class属性。使用
.parentNode
属性访问父节点。感谢您的回复。你能再解释一下吗?我是js的初学者。