2011-09-26 41 views
8

我只需要一個簡單的函數,它將搜索當前的url爲一個字符串(即「自然」),然後將一個類添加到對象。我一直在想方法來搜索查詢,但我想搜索整個網址。如果可能的話,不用jQuery。如果不是,jQuery將起作用。簡單的javascript:搜索字符串的url,做點什麼

回答

10

您可以window.location.href獲取URL,搜索它,只要你喜歡:

var location = window.location.href; 
if(location.indexOf("whatever") > -1) { 
    //Do stuff 
} 

window.location返回Location對象,它包含的頁面的完整網址屬性href

3

最基本的做法是這樣的:

window.location.href.indexOf('nature') 

,將返回-1如果沒有找到該字符串。否則,它將返回URL字符串內的字符串索引。

1

使用正則表達式,作爲一種替代方案:

if (window.location.toString().match(/nature/)) { 
    yourobj.className = 'newclass'; 
} 
0

如果您正在尋找在查詢字符串的值,你可以試試這個:否則

var searchIndex = window.location.search.indexOf("nature"); 

,你可以這樣做:

var searchIndex = window.location.href.indexOf("nature"); 

你也可以這樣做:

var searchIndex = window.location.href.search("/nature/"); 

要檢查單詞是否被發現了,你可以這樣做:

if (searchIndex > -1) 
    //logic here 
0

我想,這應該給你一個很好的起點。 JSFiddle可在這裏。

<div id="test">Some text</div> 

.red 
{ 
    background-color: #FF0000; 
} 

function handler(url, textToMatch, objectToChange, classToAssign) 
{ 
    if (url.search(textToMatch) != -1) 
    { 
     objectToChange.className = classToAssign; 
    } 
} 

var url = 'http://www.some-place.com&nature'; //window.location.href in your case 
var div = document.getElementById('test'); 

handler(url, 'nature', div, 'red'); 
0

URL中的散列導致的問題對我來說,這樣反而我用了一個 「?」。

作爲一個例子可以說我有網址:http://example.com?someString

首先,我檢索到的URL: 「?」

var activeURL = window.location.href; 

然後我把一切從指數+ 1(因爲我不在乎包括「?」)。

var activeItem = aactiveURL.substring(activeUrl.indexOf('?') + 1, activeURL.length); 

activeItem將 「someString」