Javascript 我的页面的第一次加载不';不太管用

Javascript 我的页面的第一次加载不';不太管用,javascript,jquery,loading,Javascript,Jquery,Loading,我对jQuery和javascript有点陌生,昨天刚刚实现了一个新代码来处理菜单中的一些样式。当主页加载时,尽管它正在做一些事情,但它并不完全正常工作。当我导航到另一个页面并返回时,它工作正常。这是我第一次感到悲伤。有人能帮我找出我的代码出了什么问题吗 这是我的密码: $(function(){ var url = window.location.pathname, urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");

我对jQuery和javascript有点陌生,昨天刚刚实现了一个新代码来处理菜单中的一些样式。当主页加载时,尽管它正在做一些事情,但它并不完全正常工作。当我导航到另一个页面并返回时,它工作正常。这是我第一次感到悲伤。有人能帮我找出我的代码出了什么问题吗

这是我的密码:

$(function(){ 
  var url = window.location.pathname,  
      urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
    $('.nav ul li a').each(function(){  
        if(urlRegExp.test(this.href.replace(/\/$/,''))){        
        $(this).attr('id', 'selected'); 
        } 
  });
    $(function() {
        if (url === "/index.html" || url === "/") {
        $('.nav').attr('id','homenav');
        }
  });
});

您必须将javascript封装在READY函数中:

$(document).ready(function(){
   $(function(){ 
  var url = window.location.pathname,  
      urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
    $('.nav ul li a').each(function(){  
        if(urlRegExp.test(this.href.replace(/\/$/,''))){        
        $(this).attr('id', 'selected'); 
        } 
  });
    $(function() {
        if (url === "/index.html" || url === "/") {
        $('.nav').attr('id','homenav');
        }
  });
});
});
我想


如果问题只是当它的
/
/index.html
是同一页时,为什么不在检查之前进行
/
/index.html
。。像这样:

$(function(){ 
    var url = window.location.pathname;
    if(url == '/')
    {
        url = '/index.html'; 
    }
    var urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
    $('.nav ul li a').each(function(){  
        if(urlRegExp.test(this.href.replace(/\/$/,''))){        
            $(this).attr('id', 'selected'); 
        } 
    });

    $(function() {
        if (url === "/index.html") {
            $('.nav').attr('id','homenav');
        }
    });
});

第一批货怎么了?当我们不知道症状时,很难找出问题所在。这是一个棘手的问题。。。我们不能确定到底发生了什么,出了什么问题。您可以使用“console.log(objecthere)”在大多数现代WebBrowser上的开发控制台中输出各种数据(如chrome:右键单击页面->检查元素->控制台)"代码应该检测文件路径,如果它与锚点标记中的href属性匹配,那么它会向包含该特定锚点的列表项添加一个id。基本上,它会将该文本从黑色更改为蓝色。在第一次加载时,它会将所有列表项更改为蓝色。当我离开并返回时,该函数似乎是运行很好。所以第一次加载时,导航中的每个链接都以某种方式通过了RegExp测试?是的,这完全正确@Barney。关于如何修复它有什么想法吗?$(文档)。ready(function(){}等于$(function(){}在jQuery中。所以这不是问题,但谢谢你的尝试!聪明的想法。我尝试过了,而且效果很好。我想我需要更具创造性地思考解决方案,而不是过于详细。谢谢,Danny。