[英]jQuery attr href, why isn't it working?
我認為下面的代碼行應該可以正常工作: $(".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
實際上是一個<div class='.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上,則可以對該網址進行硬編碼。
另外一件事,我可以看到你在檢查它之后添加了ActiveTab1類,所以它不應該進入代碼的那一部分,除非它已經有了那個類。
您必須將當前位置附加到href屬性。
您需要添加名稱空間$(“a”)。attr(“xlink:href”,“#123”);
如果你在iframe中的teg,你不能通過jquery做任何事情嘗試做這樣的console.log($(“。1”)。html()); 你會看到null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.