4

我认为以下代码行应该可以正常工作:$(".1").attr('href', '#Home'); 对吗?

但是,当我将它与另一个 jQuery 脚本集成时,为什么它不起作用呢?

$(window).bind("load", function() {
    $('.1').click(function() {
        $('.1').removeClass('tab1');
        $('.2').removeClass('active2');
        $('.3').removeClass('active3');
        $('.4').removeClass('active4');

        $('.1').addClass('active1');

        $('.2').addClass('tab2');
        $('.3').addClass('tab3');
        $('.4').addClass('tab4');

        $('#PortfolioMainContainer:visible').fadeOut("slow",function(){
            $('#TextContent').load('Home.html', function() {
                $(this).fadeIn("slow")
            });
            return false;
        }); 

        if(!$(".1").hasClass("ActiveTab1")) {
            $(".1").attr('href', '#Home');
            $('#TextContent:visible').fadeOut("slow",function(){
                $('#TextContent').load('Home.html', function() {
                    $(this).fadeIn("slow")
                });
                return false;
            });
        }
        $(".1").addClass("ActiveTab1");

        $(".2").removeClass("ActiveTab2");
        $(".3").removeClass("ActiveTab3");
        $(".4").removeClass("ActiveTab4");
    });
});

我想弄清楚的是,当您单击 .1 类的 div 时,URL 必须更改为http://www.websiteurl.com/#Home

有人知道如何让它工作吗?

4

5 回答 5

6

我测试了以下语句,它确实有效。

        $(function() {
            $("a").attr("href", "#123");
        });

如果我点击任何链接,毫无疑问,该位置实际上在末尾附加了#123。

我认为您的问题可能是,您的“.1”未附加到锚对象。在 HTML 规范中,只有超链接(以及一些不相关的 html 标签)具有“href”属性。这意味着,例如,您.1实际上是一个<div class='.1'>,那么,即使您将 href 属性赋予它,它也不会有任何充当“超链接”的默认行为。在这种情况下,您应该以编程方式导航到指定的 url,例如:

$(".1").click(function(){
    window.location = "current/url" + "#home";
});
于 2009-07-01T10:48:00.527 回答
3

您可以使用 document.URL 来获取当前位置,所以

$(".1").attr('href', document.URL + '#Home');

问题是 document.URL 将获取带有磅数和所有内容的 url,因此如果您在 example.com/#work,docuement.URL 将返回“example.com/#work”。所以你可能想做一些检查,或者如果你知道你在这个脚本的静态 url 上,你可以硬编码 url。

另一件事,我可以看到您在检查后添加了 ActiveTab1 类,因此它不应该进入代码的那部分,除非它已经具有该类。

于 2009-07-01T10:39:12.823 回答
0

您必须将当前位置附加到 href 属性。

于 2009-07-01T10:33:38.497 回答
0

您需要添加命名空间 $("a").attr("xlink:href", "#123");

于 2013-04-21T07:29:24.237 回答
0

如果你的 teg 在 iframe ,你不能通过 jquery 做任何事情尝试做这样的事情 console.log($(".1").html()); 你会看到 null

于 2013-10-03T09:27:57.697 回答