Javascript 即使选择了子元素,也要高亮显示父元素(opencart)
上周我用opencart创建了一个电子商店。现在我正在尝试自定义默认的顶部菜单。我要做的是,即使选择了子元素,也要保持父元素高亮显示 我用这个js突出显示当前页面: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
<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的初学者。