我很难搞清楚为什么这不起作用。由于某种原因,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)
答案 0 :(得分:0)
好的 - 我想我明白了:)
修订IF声明:
if(window.location.href.indexOf("/"+ sectionTitleSlug +"/") > -1) {
//
};
这样它匹配/ sectionTitleSlug /(因此它精确定位了一个特定的目录,而不仅仅是文本)。