Jquery:无法读取属性' addClass'未定义的

时间:2017-10-18 16:39:43

标签: javascript jquery html

我从一个主题复制了代码。我完全分析并理解了它。该主题是关于分配当前页面的类(并且在链接中搜索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);

2 个答案:

答案 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 对象(可能)没有匹配的元素而不是未定义的变量。