jQuery attr href,为什么不工作?

我认为以下代码行应该可以正常工作: $(".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

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

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

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

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

我认为你的问题可能是,你的“.1”没有附加到一个锚对象。 在HTML规范中,只有超链接(和一些不相关的html标签)具有“href”属性。 这意味着,例如,你的.1实际上是一个

,那么,即使你把href属性赋予它,它也没有任何默认行为充当“超链接”。 在这种情况下,您应该以编程方式导航到指定的URL,如:

 $(".1").click(function(){ window.location = "current/url" + "#home"; }); 

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

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

问题是document.URL将获得带有磅和所有内容的url,所以如果你在example.com/#work上,docuement.URL将返回’example.com/#work’。 因此,您可能需要进行一些检查,或者如果您知道自己在此脚本的静态URL上,则可以对该url进行硬编码。

另外一件事,我可以看到你在检查它之后添加了ActiveTab1类,所以它不应该进入代码的那一部分,除非它已经有了这个类。

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

你需要添加名称空间$(“a”)。attr(“xlink:href”,“#123”);

如果您在iframe中使用teg,则无法通过jquery执行任何操作尝试执行类似此console.log($(“。1”)。html()); 你会看到null