我很难弄清楚为什么这不起作用。由于某种原因,If 语句触发的不仅仅是匹配的项目。我正在尝试浏览侧边栏中的每个部分,以查看部分标题的名称是否包含在当前 url 的 / 部分中,以便我可以告诉该部分处于活动状态。
我无法匹配确切的 url,因为我的结构是这样设置的:
<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 的一部分,如果是,请将包含该部分标题/链接的部分设置为活动部分。这样,该部分中的标题和所有链接将触发匹配并将该部分设置为活动状态。
我所有的警报都返回正确的数据。
/* 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)