0

先週、opencart で e ショップを作成しました。現在、デフォルトのトップメニューをカスタマイズしようとしています。私がやりたいことは、子要素が選択されていても親を強調表示したままにすることです

この 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 に答える