Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 如何将已单击链接的类附加到另一个锚标记的href结尾?_Javascript_Jquery_Class - Fatal编程技术网

Javascript 如何将已单击链接的类附加到另一个锚标记的href结尾?

Javascript 如何将已单击链接的类附加到另一个锚标记的href结尾?,javascript,jquery,class,Javascript,Jquery,Class,我正在开发一个利用同位素过滤器和哈希历史的网站。 但是,为了使我的过滤器正常工作,我需要在我的缩略图永久对齐后添加#filter=.print“a.perma”。“.print”是正在单击的过滤器的类“选项集a”。在这种情况下,打印过滤器。 我对jQuery不太在行,如有任何帮助,将不胜感激。 以下是我一直在处理的代码: var myClass; jQuery("option-set a").click(function() { myClass = jQuery(this).attr(

我正在开发一个利用同位素过滤器和哈希历史的网站。
但是,为了使我的过滤器正常工作,我需要在我的缩略图永久对齐后添加
#filter=.print
“a.perma”。
“.print”
是正在单击的过滤器的类
“选项集a”
。在这种情况下,打印过滤器。
我对jQuery不太在行,如有任何帮助,将不胜感激。
以下是我一直在处理的代码:

var myClass;

jQuery("option-set a").click(function() {
    myClass = jQuery(this).attr("class");
});

jQuery("a.perma").each(function() {
    var _href = jQuery(this).attr("href"); 
    jQuery(this).attr("href", _href + myClass);
});

这是工作代码。删除所有以前的过滤器。即使在转到另一个页面并返回后仍保持永久链接值。使用
localStorage

if(typeof(Storage)!=="undefined") {
    var oldClass = localStorage.getItem("permalink");

    if(oldClass != null && oldClass != "") {
        jQuery("a.perma").each(function() {
            var _href = jQuery(this).attr("href"); 
            _href = _href.split("#")[0];

            jQuery(this).attr("href", _href + "#filter=." + oldClass);
        });
    }
}

jQuery("option-set a").click(function() {
    myClass = jQuery(this).attr("class");

    jQuery("a.perma").each(function() {
        var _href = jQuery(this).attr("href"); 
        _href = _href.split("#")[0];

        jQuery(this).attr("href", _href + "#filter=." + myClass);

        if(typeof(Storage)!=="undefined") {
            localStorage.setItem("permalink", myClass);
        }
    });
});
您可以尝试这样做,使用with函数来确定和设置新值,以避免需要单独迭代和get/set

jQuery("option-set a").click(function() {
    var myClass = this.className; // same as $(this).attr('class');
    jQuery('a.perma').attr('href', function(i, oldHref) {
        return oldHref + '.' + myClass;
    });
});

根据原始
href
属性的外观,您可能需要在字符串中添加更多或更少的内容;我在上面假设已经包含了
#filter=
部分。您可能还想检查它是否已经存在于现有的
href
中,因此它不会被添加多次。

为什么单击?为什么你不能立即将
#filter=.print
附加到你所有的拇指上?@roXon问题的标题是“关于点击的链接”,所以我假设他们只希望在点击链接时发生。@AnthonyGrist是的,但他也说他只有一个类,
.print
,所以现在我再问一次。为什么点击:)@roXon正如我之前所说的:因为他们只希望点击链接时发生——类的数量与此完全无关。无论他们有一个或一百万个类,如果他们不想在点击链接之前发生这种情况,他们需要一个点击事件处理程序。另外,作为一个猜测,我想说这个问题的措辞很糟糕,
print
只是许多类的一个例子。这是有道理的。我只是“惊叹”我们怎么不能从医生那里听到声音。这两个答案都奏效了。谢谢你的帮助。我现在遇到的问题是,每次单击都会将类分配到永久链接的末尾,因此如果我单击打印然后单击web,那么永久链接的url将显示为:/#filter=.print#filter=.web#filter=.photography仍然有效,然而,如果为了整洁起见,它只显示最后一个,那就太好了。非常感谢你的帮助!如果不是太多的要求,你认为你能帮我做最后一件事吗?:一旦点击缩略图并加载下一页,我需要缩略图来保持所选过滤器的当前永久链接。任何想法都将不胜感激。我就是想不出来。我真的很感激你的帮助!!您的意思是,当您返回页面时?为此,您需要使用
localStorage
。否。。用于单击缩略图并加载工作页面时。我需要重复这个过程。