Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 标签<;a>;添加单击和如何添加属性;主动的;_Javascript_Html - Fatal编程技术网

Javascript 标签<;a>;添加单击和如何添加属性;主动的;

Javascript 标签<;a>;添加单击和如何添加属性;主动的;,javascript,html,Javascript,Html,我想为标签添加单击,同时为当前的添加属性“active” 我是这样做的,但不起作用: HTML: 如何为这个问题编写正确的js 单击链接会导致浏览器离开当前页面并加载新页面 对当前页面所做的任何DOM修改都将丢失 您需要在新页面中添加该类。理想情况下,您可以使用服务器端代码执行此操作,但您可以通过将location.href与菜单中每个链接的href属性进行比较来使用客户端JavaScript。单击链接会导致浏览器离开当前页面并加载新页面 对当前页面所做的任何DOM修改都将丢失 您需要在新页面中

我想为标签添加单击,同时为当前的
添加属性“active”

我是这样做的,但不起作用:

HTML:


如何为这个问题编写正确的js

单击链接会导致浏览器离开当前页面并加载新页面

对当前页面所做的任何DOM修改都将丢失


您需要在新页面中添加该类。理想情况下,您可以使用服务器端代码执行此操作,但您可以通过将
location.href
与菜单中每个链接的
href
属性进行比较来使用客户端JavaScript。

单击链接会导致浏览器离开当前页面并加载新页面

对当前页面所做的任何DOM修改都将丢失


您需要在新页面中添加该类。理想情况下,您可以使用服务器端代码执行此操作,但您可以通过将
location.href
与菜单中每个链接的
href
属性进行比较来使用客户端JavaScript。

您的逻辑很好,但一旦浏览器加载新页面,您就会丢失所选内容

您可以向代码中添加
preventDefault()
,以阻止浏览器跟随链接,但这样链接将无法工作;)

似乎您应该检查哪个链接是当前路径,并在该路径上设置类,如下所示:

"use strict";
$(document).ready(function(){
    document.querySelectorAll('.leftFocus a').forEach(function (link) { 
        if (link.href === window.location.href) { 
            link.classList.add('active'); 
        } 
    }); 
});

您的逻辑很好,但一旦浏览器加载新页面,您就会丢失所选内容

您可以向代码中添加
preventDefault()
,以阻止浏览器跟随链接,但这样链接将无法工作;)

似乎您应该检查哪个链接是当前路径,并在该路径上设置类,如下所示:

"use strict";
$(document).ready(function(){
    document.querySelectorAll('.leftFocus a').forEach(function (link) { 
        if (link.href === window.location.href) { 
            link.classList.add('active'); 
        } 
    }); 
});

active
添加到每个页面非常感谢j08691,但我该怎么做?我只希望当前页面具有“活动”属性。你能给我详细解释一下吗?非常感谢你!将
active
添加到每个页面非常感谢j08691,但我该怎么做?我只希望当前页面具有“活动”属性。你能给我详细解释一下吗?非常感谢你!非常感谢@Quentin,让我尝试一下。非常感谢@Quentin,让我尝试一下。非常感谢pixelscript,我尝试了您的代码,修改如下:$(document)。ready(function(){“use strict”;document.querySelectorAll('.leftFocus a')。forEach(function(link){if(link.src==window.location.pathname){link.classList.add('active');}}}}});对于您在我的环境中的代码报告错误,但它似乎不起作用。我是否修改了错误的代码?再次感谢pixelscript。我已从document.querySelectorAll('.leftFocus a').forEach(link=>{…})中修改了您的代码;到document.querySelectorAll('.leftFocus a').forEach(函数(链接){…});我将link=>更改为函数(链接).是吗?@pixelscript.哦,是的,那很好,我只是使用了ES6语法^ ^如果没关系的话,用你的代码,标签可以跳转到新页面,但没有“active”属性,我怎样才能解决这个问题,谢谢你的pixelscript,你是个好人。@pixelscript我也改变了,它也不起作用。然后我改变了“/Recommend”页面并添加了“active”到“”,它起作用了。非常感谢你的帮助。非常感谢pixelscript,我试着修改了你的代码,比如:$(文档).ready(function(){“use strict”;document.queryselectoral('.leftFocus a').forEach(function(link){if(link.src===window.location.pathname){link.classList.add('active');}}});});我的环境报告中的代码有错误,但似乎不起作用。是我修改了错误的代码吗?再次感谢pixelscript。我已从document.queryselectoral('.leftFocus a').forEach(link=>{…})到document.queryselectoral修改了您的代码('.leftFocus a').forEach(function(link){…});我将link=>更改为function(link)。对吗?@pixelscript.Oh是的,那很好,我只是使用了ES6语法^ ^ ^ ^如果没关系,在代码中,标记可以跳转到新页面,但没有“active”属性,我怎样才能解决这个问题,谢谢你的pixelscript,你是个好人。@pixelscript我也改变了,它也不工作。然后我改变了“/Recommend”页面并添加了“active”,它工作了。非常感谢你的帮助。
$(document).ready(function(){
    "use strict";
    $('.leftFocus a').on('click', function(e){
        // link will have correct class but no longer will navigate
        e.preventDefault();
        $(this).addClass('active').siblings('.leftFocusItem').removeClass('active');
    });
});
"use strict";
$(document).ready(function(){
    document.querySelectorAll('.leftFocus a').forEach(function (link) { 
        if (link.href === window.location.href) { 
            link.classList.add('active'); 
        } 
    }); 
});