0

jQuery を使用して CSS をメニュー リンクに追加するために、配列をループ処理したいと考えています。URL に特定の文字列が含まれている場合、特定の CSS が同じ文字列を含むメニュー リンクに割り当てられます。

HTML は次のとおりです (本当に役立つかどうかはわかりませんが、ここにあります)。

<ul>
    <li>
        <a href="http://mysite.com/">HOME</a>
        <a href="http://mysite.com/about">ABOUT</a>
        <a href="http://mysite.com/brands">BRANDS</a>
        <a href="http://mysite.com/investors">INVESTORS</a>
        <a href="http://mysite.com/news">NEWS</a>
        <a href="http://mysite.com/videos">VIDEOS</a>
        <a href="http://mysite.com/contact">CONTACT</a>
    </li>
</ul>

ここに私のコードスニペットがあります:

var url_link = new Array();

url_link[0] = 'about';
url_link[1] = 'the-company';
url_link[2] = 'employment';
url_link[3] = 'customer-service';
url_link[4] = 'faqs';
url_link[5] = 'brands';
url_link[6] = 'news';
url_link[7] = 'videos';
url_link[8] = 'contact';

for (var i=0; i<url_link.length; i++) {
    if (location.href.indexOf(url_link[i])>=0) {
        $('.appearance-menus-'+url_link[i]+'>a').css("color", "#636363");
        $('.appearance-menus-'+url_link[i]+'>a').mouseout(function() {
            $(this).css("color", "#636363");
        });
    }
}

何らかの理由で、このスニペットは Web サイトを壊します。配列要素を jQuery セレクターに連結することに問題があるのではないかと思います。私は構文を台無しにしたに違いありません。

それを行う適切な方法は何ですか?

4

2 に答える 2

1

はクロス ブラウザー機能ではないためindexOf、代替手段 (たとえばhttp://www.w3schools.com/jsref/jsref_search.aspを使用) を使用するか、次のように自分で実装する必要があります。 JavaScript で配列 indexOf() を修正する方法Internet Explorer ブラウザ

于 2013-06-17T14:31:45.607 に答える