上周我用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。对不起我的英语,如果你不明白我想做什么。
答案 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>