1

URLをプルしてから、大文字に変換しています。その変数を.search関数にロードして、結果をフィルタリングしたいと思います。

これは私がこれまでに持っているものですが、正しく機能していません:

$(function() {
    var search_name = location.search;
    var ucSearch = search_name.toUpperCase();

    if (search_name.search("airports")  > 0) {
        $("div.more a:contains("+ ucSearch +")").addClass("active");
    }

});

これは構文の問題かもしれないと思います。

私は最終的に私はこのようなものが欲しいと思います:

$(function() {
   var search_name = location.search;
   var ucSearch = search_name.toUpperCase();

   if (search_name.search("+ ucSearch +")  > 0) {
       $("div.more a:contains("+ ucSearch +")").addClass("active");
   }
});

このようにして、URL内の変数をアンカーHTML内にある変数と一致させます。

アップデート:

これが私のhtmlです

<div class="more">
<ul>
  <a class="static" href="#">ALL</a>
  <li><a class="static" href="#">AIRPORTS</a></li>
</ul>
</div>

したがって、jqueryでURLを取得し、そのURLテキストをアンカータグのhtmlテキストと一致させたいと思います。この例では「AIRPORTS」です。もう少し流動的にしたいのは、タグ「AIRPORTS」と「GARAGES」を固定するためにあったからです。次に、URLに渡されたものを対応するアンカータグと照合し、「アクティブ」クラスを追加できます。

これがフィドルです

URLはsite/?type=AIRPORTSです

4

1 に答える 1

1

window.location.searchGETクエリ文字列(この例では、これに含まれます)を?type=AIRPORTS取得する場合は、検索語のみを取得するためにこれをフィルタリングすることから始める必要があります。非常に原始的な方法は、を使用することですsubstr。例えば

var term = window.location.search.substr('?type='.length);

現在、termが含まれていますAIRPORTS。それが大文字になっていることを確認するために、これのToUpperCase上に呼び出すことができます。例えば

var term = window.location           // "http://somesite.com/?type=AIRPORTS"
           .search                   // "?type=AIRPORTS"
           .substr('?type='.length)  // "AIRPORTS"
           .toUpperCase();           // "AIRPORTS"

次に、jQueryに移動して、この検索語が含まれるすべてのリンクを検索し、クラスをアクティブに設定します。

$('div.more a:contains("' + term + '")').addClass('active');

そして、すべて一緒に:

$(function(){ // document.ready
  var term = window.location.search.substr('?type='.length).toUpperCase();
  $('div.more a:contains("' + term + '")').addClass('active');
});
于 2012-06-25T03:02:43.430 に答える