2017-06-27 4 views
-1

私はそのアンカータグのulをトレースするためにすべてのアンカータグをループしています。jqueryの各ループで値を更新しません

私の目標は、一致する場合にそのulタグのクラス名を指定することです。

残念ながら、条件の中でnの値を変更したにもかかわらず、それぞれのループの内部で、条件に入るたびに、

はるかに簡単
var fileName = location.pathname.split("/").slice(-1) 
    //var url = window.location.href; 
    var n = -1; 
    alert(fileName); 
    $("[id$=sample] a").each(function() { 
     n = this.href.indexOf(fileName); 
     if (n != -1) 
     { 
      alert(this.href); 
      alert(n); alert(fileName); 
      n = -1; 
     }   
     console.log(this.href); 
    }); 
+1

'fileName'と' href'値何の価値とは何ですか? 'href'値と' fileName'の値を含むHTMLを投稿してください。 – Nope

+0

Filenameの値は、HomePage.aspxやLoginPage.aspxのようなURLページの名前と同じになります。 –

+0

'n'の値を手動で設定しても、次のループの開始時に再び新しい値に設定されるため、何もしません。問題はやや不明ですが、最初の試合後にループを止めたい場合は 'falseを返す '必要があります。 – JJJ

答えて

1

filter()を使用してlocation.pathname<a>pathnameを比較する直接

$("[id$=sample] a").filter(function() { 
    return this.pathname === location.pathname;  
}).addClass('current-page-class'); 
+0

私はそのアンカータグのULにクラスを追加する必要があります。 –

+1

サンプルHTML構造を表示します。 addClass( 'current-page-class'); 'しかし、入れ子にされたulがhtmlと関連するクラスと期待される結果を見る必要があるならば、' .closest( 'ul')に変更することができます。 – charlietfl

関連する問題