Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在HTML中调用JS脚本_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 在HTML中调用JS脚本

Javascript 在HTML中调用JS脚本,javascript,jquery,html,css,Javascript,Jquery,Html,Css,你好,我有这个代码,我想用紫色显示活动链接。我有一个js文件,但是,似乎没有预期的工作。我不确定我到底哪里做错了。其他一切都正常工作,但当你点击一个链接时,它无法像css中那样高亮显示为紫色。我只提供了必要的代码,有人吗 html css(site.css) 。导航菜单li.active a{ 背景颜色:紫色; 颜色:#fff; } .导航菜单li ul{ 显示:无; } .导航菜单li a:悬停{ 背景色:黑色; 颜色:白色; } .导航菜单li a.激活{ 背景

你好,我有这个代码,我想用紫色显示活动链接。我有一个js文件,但是,似乎没有预期的工作。我不确定我到底哪里做错了。其他一切都正常工作,但当你点击一个链接时,它无法像css中那样高亮显示为紫色。我只提供了必要的代码,有人吗

html


css(site.css)

。导航菜单li.active a{
背景颜色:紫色;
颜色:#fff;
}
.导航菜单li ul{
显示:无;
}
.导航菜单li a:悬停{
背景色:黑色;
颜色:白色;
}
.导航菜单li a.激活{
背景颜色:紫色;
颜色:#fff;
}
javascript(color.js)

$(文档).ready(函数(){
$('ul li a')。单击(函数(){
$('li a').removeClass(“活动”);
$(此).addClass(“活动”);
});
});
您有两个问题

首先,您没有在页面中包含,因此当JS运行时,它会抛出一个错误,因为没有定义
$

如果要修复,则事件顺序如下:

  • 点击链接
  • JavaScript开始运行
  • JavaScript修改页面的DOM
  • JavaScript结束
  • 浏览器跟随链接
  • 已修改DOM的页面将被丢弃
  • 将加载一个新页面
  • …而且新页面没有被JavaScript修改

    活动的
    类放入新页面的HTML中。

    您有两个问题

    首先,您没有在页面中包含,因此当JS运行时,它会抛出一个错误,因为没有定义
    $

    如果要修复,则事件顺序如下:

  • 点击链接
  • JavaScript开始运行
  • JavaScript修改页面的DOM
  • JavaScript结束
  • 浏览器跟随链接
  • 已修改DOM的页面将被丢弃
  • 将加载一个新页面
  • …而且新页面没有被JavaScript修改


    active
    类放入新页面的HTML中。

    您必须检查页面url并在元素中匹配href,然后将class active添加到相应的元素中

    您必须包括jQuery库

    将test.html page2.html替换为您拥有的页面名称

    $(document).ready(function() {
        var pageURL = $(location).attr('href'),
            pageName= [ /test.html/, /page2.html/, /page3.html/],
            links = $('a'),
            LinksToActive;
    
        for( var i=0; i < $(pageName).size(); i++){
                for( var j=0; j < $(links).size(); j++){
                    var str = $(links[j]).attr('href');
                    if( 'str:contains(pageName[i])' ){
                        LinksToActive = $(links[j]);
                        break;
                    }
                    else{
                        continue
                    }
                }
        }
        $(LinksToActive).addClass('active');
    
        });
    
    $(文档).ready(函数(){
    var pageURL=$(位置).attr('href'),
    pageName=[/test.html/,/page2.html/,/page3.html/,],
    链接=$('a'),
    链接活跃;
    对于(var i=0;i<$(pageName).size();i++){
    对于(var j=0;j<$(links).size();j++){
    var str=$(links[j]).attr('href');
    if('str:contains(pageName[i])){
    LinksToActive=$(links[j]);
    打破
    }
    否则{
    持续
    }
    }
    }
    $(LinksToActive).addClass('active');
    });
    

    在pageName变量nad中更改/添加页面名称。在关闭body标记之前,您必须检查元素中的页面url和匹配href,并向相应元素添加活动类

    您必须包括jQuery库

    将test.html page2.html替换为您拥有的页面名称

    $(document).ready(function() {
        var pageURL = $(location).attr('href'),
            pageName= [ /test.html/, /page2.html/, /page3.html/],
            links = $('a'),
            LinksToActive;
    
        for( var i=0; i < $(pageName).size(); i++){
                for( var j=0; j < $(links).size(); j++){
                    var str = $(links[j]).attr('href');
                    if( 'str:contains(pageName[i])' ){
                        LinksToActive = $(links[j]);
                        break;
                    }
                    else{
                        continue
                    }
                }
        }
        $(LinksToActive).addClass('active');
    
        });
    
    $(文档).ready(函数(){
    var pageURL=$(位置).attr('href'),
    pageName=[/test.html/,/page2.html/,/page3.html/,],
    链接=$('a'),
    链接活跃;
    对于(var i=0;i<$(pageName).size();i++){
    对于(var j=0;j<$(links).size();j++){
    var str=$(links[j]).attr('href');
    if('str:contains(pageName[i])){
    LinksToActive=$(links[j]);
    打破
    }
    否则{
    持续
    }
    }
    }
    $(LinksToActive).addClass('active');
    });
    

    在pageName变量nad中更改/添加页面名称,并在关闭body tag之前使用此脚本

    是否链接了所有内容?CSS的JS和jQuery?
    和JS的
    是HTML文件中的链接。
    控制台中的任何错误
    ?之所以会发生这种情况,是因为该链接会将您带到另一个页面,这会使CSS和jQuery重新开始。我不知道如何链接jQuery@安德烈,你把一切都联系起来了吗?CSS的JS和jQuery?
    和JS的
    是HTML文件中的链接。
    控制台中的任何错误
    ?之所以会发生这种情况,是因为该链接会将您带到另一个页面,这会使CSS和jQuery重新开始。我不知道如何链接jQuery@AndrewL.
    将活动类放在新页面的HTML中
    ,但这是一个完全不同的代码,因为您不知道您单击的链接是谁。因此,您可以尝试通过
    location.href
    来了解它,例如(
    $('[href='+location.href+']')
    )。()在这里工作,但实际上并不是您的意思@MoshFeu@MoshFeu-我说的是“在HTML中”。如果html文件是静态的,您不需要用JavaScript来解决它。@Quentin。在大多数情况下,情况并非如此。。但这与问题无关。@Bob-这是同一个URL。它有CSS。它有JS。与问题中的代码不同,它有jQuery。它没有HTML。
    将活动类放在新页面的HTML中
    ,但这是一个完全不同的代码,因为您不知道在它上单击的链接是谁。因此,您可以尝试通过
    location.href
    来计算它,例如(
    $('[href=”)+