私はお勧めします:
var path = document.location.pathname;
$('a').filter(
function(i,e){
return $(this).attr('href').indexOf(path) == 0;
}).addClass('highlight');
JS フィドルのデモ。
クラスhighlight
名は、適切にハイライトを定義します。
これは、次の HTML でテストされています。
<a href="/about-us/">About us</a>
<a href="/products/">Products</a>
<a href="/_display/">_display</a>
<a href="/contact/">Contact</a>
これは JS Fiddle で証明されているため、3 番目のa
要素に一致することに注意してください (これが一致するためです。
特定のディレクトリ/サブディレクトリで一致させることができる、もう少し一般的なソリューションを提供するように編集されました。
function directory(path) {
if (!path) {
return false;
}
else {
var _tmp = path.split('/'),
directories = [];
for (var i = 0, len = _tmp.length; i < len; i++) {
if (_tmp[i].length > 0 && _tmp[i].indexOf('?') == -1) {
directories.push(_tmp[i]);
}
}
return directories;
}
}
// in the real world use:
// var path = document.location.pathname,
var path = '/products/some-catogory/sub-category/product/?x=y&z=x',
dir = directory('/products/some-catogory/sub-category/product/?x=y&z=x')[0];
$('a').filter(
function(i, e) {
return $(this).attr('href').indexOf(dir) == 0 || $(this).attr('href').indexOf('/' + dir) == 0
}).addClass('highlight');
JS フィドルのデモ。