0

現在のリンクにアクティブなクラスを設定しましたが、href が「 gallery.htm 」または適切な Web ページのようなものである場合にうまく機能します。しかし、レイアウトを変更した後、リンク先ごとに ID を設定して、ユーザーがページ間で切り替えられるのではなく、同じページ内のリンク先のみに誘導されるようにしました。

問題が単純すぎて、Google で関連するものが見つからなかったと思います。とにかく気にしないでください;私はまだjavascriptが得意ではありません。

問題は、このスクリプトを使用してアクティブなクラスを設定できないことです。

var url = window.location.pathname,
    urlRegExp = new RegExp(url.replace(/\/$/, '') + "$");
$('a').each(function () {
    if (urlRegExp.test(this.href.replace(/\/$/, ''))) {
        $(this).addClass('active1st');
    }
});

これがサンプルです。

では、どこかがおかしいのでしょうか?

4

2 に答える 2

1

path に一致する要素または要素のセットがありません'#Menu div span #Menu1st a'

あなたの識別子はabであり、どこにも表示されMenuませんMenu1st

編集:

あなたの更新により、あなたの識別子abdiv要素であり、a(リンク)要素ではありません。また、識別子であるセレクターで指定しておらず、aそれをすべてのa 要素に適用しようとしているだけです。セレクターが のようにセレクターの前にハッシュを置くと、その識別子を持つその要素#aに対して実行されますが、前述のように、それはリンクではなく、 を持たないため、壊れます。たとえそれリンクでロジック実行されたとしても、hrefthis.href.replace適用されているクラスのタイプミスが原因で壊れている可能性があります (スタイルシートに存在しない場合のように!)。

上記にまとめた問題点がいくつかあります。人々がこのようなことを言う必要があるかどうかはわかりませんが、ただ注意を払うか、このようなものを長時間見つめている場合は 10 分間休憩してください。

于 2013-03-22T16:09:04.040 に答える