我从一个主题复制了代码。我完全分析并理解了它。该主题是关于分配当前页面的类(并且在链接中搜索html名称并与当前页面进行比较)。
ContextHandler defaultContext;
ContextHandler adminContext;
AbstractBinder sharedSingeltons;
ServiceLocator sharedServiceLocator = ServiceLocatorUtilities.bind("shared-locator", sharedSingeltons);
defaultContext.setAttribute(ServletProperties.SERVICE_LOCATOR, sharedServiceLocator);
adminContext.setAttribute(ServletProperties.SERVICE_LOCATOR, sharedServiceLocator);
答案 0 :(得分:1)
这会帮助你找到答案,但会同时为你提供一项重要的技能......我添加了两个日志记录,告诉你是否得到了匹配以及为什么。
如果找到匹配项,则只返回一个值,因此错误是因为您已经执行了函数而未找到匹配项。
function getCurrentLinkFrom(links){
var curPage = document.URL;
curPage = curPage.substr(curPage.lastIndexOf("/ ")) ;
links.each(function(){
var linkPage = $(this).attr("href");
linkPage = linkPage.substr(linkPage.lastIndexOf("/"));
// This will help you see if any match
console.log(curPage, linkPage);
if (curPage == linkPage){
return $(this);
}
});
// This will help you to see when there is no match
console.log('Not found!', curPage);
};
答案 1 :(得分:0)
在我看来,您的 lastIndexOf 调用在您要比较的两个值之间有所不同。 curPage 一个在斜杠后面有一个空格而另一个没有。
话虽如此,你应该看一下jQuery's filter function这会简化你的逻辑并遵循一个更好的模式,因为你在jQuery上调用 addClass 对象(可能)没有匹配的元素而不是未定义的变量。