2012-06-24 22 views
0

我想jQuery拉取網址,然後解析它找到機場。如果找到機場,我想向包含html「機場」的列表項<a>標籤添加一個類。使用location.pathname添加一個類

這是我到目前爲止有:

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> 

網址是:

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

這是一個語法問題或「嘗試另一種方式」的問題?

UPDATE:

使用警報的建議,我可以證實我使用location.search獲取URL。 var search_name = location.search; alert(search_name);

給我彈出

?type=airports 

所以我得到了正確加載變量,我不能寫要添加的類別的邏輯。到目前爲止,這些建議還沒有起作用。

UPDATE 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"); 
    } 

    }); 

但是這是行不通的。

+0

嘗試'search_name.search(search_name)'而不是'search_name.search(「+ search_name +」)' –

回答

1

...有一些小的修正,這應該工作:http://jsfiddle.net/a4tWE/2/

  • 使用的位置。HREF代替

  • 的:包含選擇器的工作原理區分大小寫

  • 除去托架

    如果((path_name.search( 「機場」)> 0){

  • 除去的發現,作爲含有

+0

我不會用path_name.search(「+ search_name +」)替換path_name.search(「display」)嗎?我試過都沒有運氣。 –

+0

是的,我的壞(編輯)。嘗試改爲使用location.href。 –

+0

'display'只是一個例子,因爲它在jsfiddle url中。你應該改變它。 –

1

location.search是包含機場的部分。它是一切以下?,並且不包含在location.pathname

1

MDN:從搜索字符串中獲得價值的例子。

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

alert(loadPageVar("name")); 
+0

Th是在警報中顯示「在localhost的頁面說:」所以它看起來像slike它不能正確拉網址。這是因爲它在本地主機上嗎?似乎不太可能。 –

+0

不知道你在哪裏得到「在localhost的頁面說」但window.location是文檔的url,所以如果url是http:// localhost,那是你的位置。 – septemberbrain