2011-10-21 79 views
1

我的問題是關於HTML和JQuery。

我在HTML代碼中的一些環節,這樣的事情:

<a href="#box1">Item1</a> 
<a href="#box2">Item2</a> 
<a href="#box3">Item3</a> 
etc. 

在我目前的jQuery腳本,我有以下代碼:

$(function() { 
    var targetbox = $('a').attr('href'); 
    $('a').click(function (event) { 
     $(targetbox).fadeIn(2000); 
     $('#showtext').text(targetbox); 
    }); 
}); 

這個腳本做什麼(或者應該做的最終)會根據點擊的鏈接(請參閱HTML代碼)而淡入其中一個隱藏的div(#box1,#box2等)中。我添加了#showtext div來查看該屬性是否正確存儲。

但是,腳本工作正常,只有在第一個鏈接中找到的第一個href屬性。我知道$('a')。attr('href')只抓取第一個'a'元素的屬性,並且我需要在某處添加.each,但我迷失在哪裏去添加它。我試着在幾個地方添加,但它停止了代碼的工作。

謝謝你的幫助。

嘖嘖

回答

-2

不,我已經使用jQuery或任何(peronally我認爲這是懶惰的程序員)的任何經驗,但你不應該有這樣的事情:

$(function(){ 
    $('a').click(function(event) { 
     var targetbox = $(this).attr('href'); 
     $(targetbox).fadeIn(2000); 
     $('#showtext').text(targetbox); 
    }); 
}); 
+2

這就是爲什麼他們被稱爲程序員bcoz他們是懶惰的...而且投票不是從我... – Rafay

+0

謝謝你我會試試這個。我是一名設計師,因此懶惰編程有時是我唯一的選擇:) – Gee

+1

是的,重新發明輪子的唯一目的是說「我很忙」是一個非常好的習慣。 (downvote也不是我) – jbabey

1

由於ID包含在href屬性和this是指點擊的元素,你只需要訪問它的屬性:

$('a').click(function (event) { 
    $(this.getAttribute('href')).fadeIn(2000); 
    // or: $($(this).attr('href')).fadeIn(2000); 
}); 
0
$(function(){ 
    $("a").click(function(e){ 
     e.preventDefault(); //avoid applying the hash to the browser (unless desired) 
     var href = $(this).attr("href").split("#")[1]; //IE6 will append the URL in front of the hash 
     $("#" + href).fadeIn(2000); 
    }); 
}); 
+0

非常感謝你。這個解決方案工作得很好!最好的祝福。 – Gee