2017-07-26 7 views
1

を抽出アルファベットでクラスを生成します。は、だから私はリスト、例を持っているのhref要素

$("li > a[href^='/pages/a']").parent().addClass("brand-a"); 
$("li > a[href^='/pages/b']").parent().addClass("brand-b"); 
$("li > a[href^='/pages/c']").parent().addClass("brand-c"); 

だから、私は各文字のための関数を書いたくないので、アルファベットを使ってこれを行うことができると思っていました。私はこれを見回していることを知りましたが、実装方法はわかりません。

'abcdefghijklmnopqrstuvwxyz'.split('').forEach(function(letter){ 
    $("li > a[href^='/pages/" + letter + "']").parent().addClass("brand-" + letter + ""); 
}); 
+0

サンプルマークアップにネストされたタグがありません。 li要素にはhrefがあります。 – Taplar

答えて

1

+0

ありがとう、それは動作します!もう一つの質問は、大文字の場合も同じですか?私はこの/コレクション/ベンダーのようないくつかのURLを持っていますか?q = Madであり、動作していません。明らかに、私は/ collections/vendors?q = "+ letter +"にコードを変更していますが、動作しません。 – alejuu

+0

これを行う最も簡単な方法は、セレクタ ' '$(" li> a [href^= '/ pages/"+ letter +"' i] ")' –

+0

あなたの助けをありがとう! – alejuu

0

あなたはブランドの手紙

$('li > a[href*="pages/"]').each(function() { 
 
    var brand = this.href.split('pages/')[1].charAt(0); 
 
    $(this).parent().addClass('brand-' + brand); 
 
});
.brand-a a { color: red } 
 
.brand-b a { color: green } 
 
.brand-c a { color: orange }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li><a href="pages/ade.html">ade</a></li> 
 
    <li><a href="pages/ate.html">ate</a></li> 
 
    <li><a href="pages/aca.html">aca</a></li> 
 
    <li><a href="pages/bes.html">bes</a></li> 
 
    <li><a href="pages/bon.html">bon</a></li> 
 
    <li><a href="pages/cas.html">cas</a></li> 
 
    <ul>
を取得するために、HREFを解析することができます:私はあなたがループ、多分このような何かしなければならないと思い

alphabet = 'abcdefghijklmnopqrstuvwxyz'.split(''); 

おかげ

関連する問題