如果链接包含窗口位置的最后部分

时间:2015-03-22 23:02:18

标签: javascript jquery

尝试将类添加到包含窗口位置的最后部分的链接的父级,以便进一步设置样式。

基本的html看起来像这样

<li>
  <a href="whatever">Some link</a>
  <ul>
    <li class="subnavli">
      <a href="somelink.com/somethinginthemiddle/lastpart">Link Text</a>
    </li>
  </ul>
</li>

和我试图使用的js / jquery是

function getLastSegmentOfPath(url) {
    var matches = url.match(/\/([^\/]+)\/?$/);
    if (matches) {
        return matches[1];
    }
    return null;
}

var endPath = getLastSegmentOfPath(window.location.href);

  $(".subnavli a").each(function(){
    if ($(this).attr('href').contains(endPath)) {
      $(this).parent().parent().parent().addClass('active5');
    }  
  });

你可能猜到,它不起作用。

1 个答案:

答案 0 :(得分:0)

包含()是个问题。现在应该工作。 contains()函数是另外的东西:http://api.jquery.com/jquery.contains/而且,还有包含选择器,但这是另一个故事......

function getLastSegmentOfPath(url) {
    var matches = url.match(/\/([^\/]+)\/?$/);
    if (matches) {
        return matches[1];


    }
    return null;
}

endPath = getLastSegmentOfPath(window.location.href);
 console.log(endPath);
  $(".subnavli a").each(function(){
    if ($(this).attr('href').indexOf(endPath)) {
      $(this).parent().parent().prev('a').addClass('active5');
    }  
  });
});

DEMO:http://jsfiddle.net/gvmhtLud/2/