我认为以下代码行应该可以正常运行:$(".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时,那么网址必须改为http://www.websiteurl.com/#Home
有人知道如何让它发挥作用吗?
答案 0 :(得分: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";
});
答案 1 :(得分:3)
您可以使用document.URL获取当前位置,所以
$(".1").attr('href', document.URL + '#Home');
问题是document.URL会获得带有英镑和所有内容的网址,所以如果您使用的是example.com/#work,docuement.URL将返回'example.com/#work'。所以你可能想要做一些检查,或者如果你知道你在这个脚本的静态URL上,你可以只对该网址进行硬编码。
另外一件事,我可以看到你在检查它之后添加了ActiveTab1类,所以它不应该进入代码的那一部分,除非它已经有了那个类。
答案 2 :(得分:0)
您必须将 当前位置 附加到href属性。
答案 3 :(得分:0)
您需要添加名称空间$(“a”)。attr(“xlink:href”,“#123”);
答案 4 :(得分:0)
如果您在iframe中使用teg,则无法通过jquery执行任何操作 尝试做类似这个console.log($(“。1”)。html());你会看到null