2011-09-26 21 views
8

文字列(つまり「自然」)の現在のURLを検索し、オブジェクトにクラスを追加する単純な関数が必要です。私はクエリを検索する方法を探し続けますが、私はURL全体を検索したいと思います。可能であれば、jQueryを使用しないでください。そうでない場合、jQueryが動作します。シンプルなjavascript:文字列の検索URL

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

文字列が見つからない場合は-1を返します。

答えて

10

あなたはしかし、あなたが好きなwindow.location.hrefでURLを取得し、それを検索することができます。

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

window.locationは、ページのURL全体を含むプロパティhrefを持つLocationオブジェクトを返します。

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

最も基本的なアプローチは、このようなものです。それ以外の場合は、URL文字列内の文字列のインデックスを返します。

1

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

あなたがのQueryStringの値を探しているなら、あなたはこれを試すことができます:代替手段として、正規表現を使用して

0

私はこの1つはあなたに良い出発点を与えるべきだと思います。 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内のハッシュは私のために問題を引き起こしたので、代わりに私がAを使用し、 "?"。

例は、私がURLを持って言うことができますとおり:http://example.com?someString

まず、私はURLを取得した:

var activeURL = window.location.href; 

その後、私はのインデックスからすべてを取ります "?" + 1(「?」を含むように気にしないので)。

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

activeItemは "someString"

になります