3

URLにディレクトリパスが含まれているときに、CSSクラスを親アイテムに追加しようとしています。

たとえば、私のURLが

example.com/directory/about.html

CSSクラスにアイテムが含まれている場合は、トップナビゲーションにアイテムを追加したいと思います/directory/

したがって、この場合、example.com/directory/overview.htmlCSSクラス" active-parent"を取得します

これは.main-nav li a.active-parent

(私はすでにjqueryを使用してURLをチェックし、そのページをアクティブにしていることに注意してください。ただし、セクションのサブページの場合、親は強調表示されません)

私はそれを使用できると思った:contains() Selectorが、それをURLに適用する方法がわからない

4

3 に答える 3

1

jQuery セレクターは URL では使用できません。URL を解析し、コンテンツが自分のものであることを確認する必要があります。

if (window.location.href.indexOf('/directory/') != -1) {
    // Add a css class to a html element
}

split 関数を使用して、より一般的な方法を実行することもできます。

window.location.pathname.split('/').forEach(function(directory) {
    if (directory == 'directory') {
        // Add a css class to a html element
    }
});
于 2012-12-03T15:38:56.470 に答える
0

正しく理解しているとすれば、URL のグループをフィルタリングしてから、 内のテキストに基づいてhrefデータを操作する必要があるとします。その場合、次のように.filter()関数を使用します。

$("a").filter(function(i) { return $(this).attr("href").indexOf("document") > -1; })

これはすべて Aのタグ要素を取得し、内部の関数を使用してそれらをフィルタリングして、href「ドキュメント」が含まれているかどうかを判断します。次に、次のように.each()関数を使用して何でもします。

$("a")
    .filter(function(i) { return this.href.indexOf("document") > -1; })
    .each(function(i) {
        $(this).parent().addClass("some-class-name");
    });

jsFiddle の例を参照してください

さらに理解が必要な場合は、コメントしてください。

于 2012-12-03T15:45:05.020 に答える
0

限られた情報に基づいて、次のことをお勧めします。

$('a').filter(
    function(){
        return this.href.match(/(\/\w+\/)/);
    }).parent().addClass('parent');

これは、単に「ディレクトリ」という名前の特定のディレクトリではなく、hrefディレクトリが含まれている場合にクラスが追加されることを前提としています。

参考文献:

于 2012-12-03T15:45:59.060 に答える