0

jQueryでURLを取得し、それを解析して空港を見つけたいと思います。<a空港が見つかったら、html「Airports」を含むlist-item>タグにクラスを追加したいと思います。

これは私がこれまでに持っているものです:

JQuery

path_name=location.pathname;

if ((path_name.search("airports")  > 0) {
        $("div.more li a").find(":contains('airports')").addClass("current-menu-item");
}

htmlは次のようになります。

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

URLは次のとおりです。

http://localhost/site/?type=airports

これは構文の問題ですか、それとも「別の方法を試す」問題ですか?

アップデート:

アラートの提案を使用して、location.searchを使用してURLを取得していることを確認できました。var search_name = location.search; alert(search_name);

ポップアップをくれた

?type=airports

したがって、正しくロードされた変数を取得しています。クラスを追加するロジックを記述できません。これまでのところ、提案は機能していません。

更新2

これは、孤立したインシデントに対して機能しています。

var search_name = location.search;
    if (search_name.search("airports")  > 0) {
        alert(search_name);
        $("div.more a:contains('AIRPORTS')").addClass("active");
    }

});

変数を渡すことでもう少し柔軟にしたいと思います。

どうやってシンをしますか?これは私が今まで持っているものです

$(function() {
    var search_name = location.search;
    if (search_name.search("+ search_name +")  > 0) {
        alert(search_name);
        $("div.more a:contains('AIRPORTS')").addClass("active");
    }

    });

しかし、これは機能していません。

4

3 に答える 3

1

location.search空港を含む部分です。以下のすべて?であり、に含まれていませんlocation.pathname

于 2012-06-24T21:58:42.087 に答える
1

MDNから:検索文字列から値を取得する例。

function loadPageVar (sVar) {  
 return unescape(window.location.search.replace(new RegExp("^(?:.*[&\\?]" +      escape(sVar).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));  
}  

alert(loadPageVar("name"));  
于 2012-06-24T22:03:25.100 に答える
1

...若干の修正を加えると、これは機能するはずです:http: //jsfiddle.net/a4tWE/2/

  • 代わりにlocation.hrefを使用しました

  • :containsセレクターは大文字と小文字を区別して機能します

  • ブラケットを取り外した

    if((path_name.search( "airports")> 0){

  • containsがジョブを実行するように、findを削除しました。

于 2012-06-24T22:11:01.740 に答える