URL变量匹配

时间:2013-09-07 21:49:59

标签: javascript jquery indexof

我很难搞清楚为什么这不起作用。由于某种原因,If语句不仅仅是匹配的项目。我试图浏览我的侧边栏中的每个部分,看看部分标题的名称是否包含在当前网址的/部分中,以便我可以告诉该部分是活动的。

我无法匹配确切的网址,因为我的结构设置如下:

<div class="row">
  // inside each section (row) div is a section title link, ie: /section-link/
  // and the section navigation links, ie: /section-link/page-link
</div>
<div class="row">
...
</div>
and so on.

我需要查看/ section-link /是否是当前url的一部分,如果是,请将包含该section title / link的部分设置为活动部分。这样,标题和该部分中的所有链接将触发匹配并将该部分设置为活动。

我的所有提醒都会返回正确的数据。

/* active sidebar section */
        $("#sidebar .row").each(function(){ 
            var currentSection = $(this);
            var sectionTitle = $(this).find("h1 a").text();
            //alert(sectionTitle);

            var sectionTitleSlug = sectionTitle.toLowerCase();
            var sectionTitleSlug = sectionTitleSlug.replace(/[^\w ]+/g,'');
            var sectionTitleSlug = sectionTitleSlug.replace(/ +/g,'-');
            //alert(sectionTitleSlug);

            if(window.location.pathname.indexOf(sectionTitleSlug) > -1) {
                //alert(sectionTitleSlug);
                $(currentSection).addClass("activeSection");
                var activeSectionIndex = $(".activeSection").index();
                $(".accordion").accordion("option", "active", activeSectionIndex);
            };
        });

非常感谢任何见解!〜

更新: 我也试过if(window.location.href.indexOf(sectionTitleSlug) > -1)

1 个答案:

答案 0 :(得分:0)

好的 - 我想我明白了:)

修订IF声明:

if(window.location.href.indexOf("/"+ sectionTitleSlug +"/") > -1) {
  //
};

这样它匹配/ sectionTitleSlug /(因此它精确定位了一个特定的目录,而不仅仅是文本)。