2011-02-04 13 views
0

クリックされたリンクされたパスと他のリンクを一致させようとしています。それはまったく動作しません。ここにコードがあります。 私はhrefの開始を正規表現にリンクする必要があります。regexの値がjqueryと一致しません

$('#taxonomylist ul li a').click(function() { 
     $href = $(this).attr("href"); 
     $regex = new RegExp("^"+$href); 
     $('#taxonomylist ul li').each(function() { 
     $href_sub = $("a", this).attr("href"); 
     if ($href_sub.match($regex)) 
     { 
     $(this).css("display", "block"); 
     } 

     }); 
     return false; 
     }); 

は、ここで私は放火犯で得たものだ:

$href = "/?q=category/activity/test" 
$href_sub = "/?q=category/activity/test/lamp" 
$regex = /^\/?q=category\/activity\/test/ 

すべてが見つけるようだが、期待どおりに動作しません。もし私が正規表現でマッチングを取り除くと、すべてうまく動作します(もちろん、フィルタリングなしで)。

EDIT:

今では部分的に動作しますが、唯一のすべてのリンク、値と一致するものではないだけにCSSプロパティを割り当てます。誰にも問題が見えますか?正規表現あなたの文字列に一致する場合

$('#taxonomylist ul li a').click(function() { 
$href = $(this).attr("href"); 
$regex = new RegExp("^"+$href); 
$('#taxonomylist ul li').each(function() { 
$href_sub = $("a", this).attr("href"); 
if ('$href_sub:contains($href)') 
{ 
$(this).css("display", "block"); 
} 

}); 
return false; 
}); 
+2

に役立ちます願っています。代わりに '.indexOf'を使用してください。 –

答えて

1

check this

使用indexOf(//value to search)は、あなたがやっているすべての値の先頭に一致、正規表現は行き過ぎであるならば、それは

+0

それは動作しません。まだすべてのものを示しています。ちょうど正しく動作しません。参照してください:http://jsfiddle.net/yNJKj/4/ – user194076

+0

@ user194076私は答えを更新しました – Rafay

+0

ありがとうございました。それは最終的に動作します!本当にありがとう。 – user194076

2

ことはあなたが求めているので。つまり、あなたの正規表現は、少なくとも(あなたの例に基づいて)次のようになります。

$regex = /^\/?q=category\/activity\/test\/\w+/ 

あなたが代わりに:contains()セレクターを使用する場合があります。

をマッチングするための

+0

ありがとう!これは部分的に問題を解決する。私はエラーを見つけることができません。リンクをクリックすると、他のすべてのリンクが表示されます。一致するパターンだけでなく、エラーが表示されますか?コードはページの一番上にあります – user194076

関連する問題