我曾經見過類似的線程,並嘗試過在他們的解決方案中使用語法,但沒有任何工作。使用jQuery根據文本的鏈接改變鏈接的href屬性
我想根據鏈接文本更改某個頁面的某種類型的所有鏈接的href屬性。這裏是我現在有:
$('.class li a').attr('href', '#' + $(this).text());
$(this).text()
似乎沒有返回任何東西。自從我使用jQuery以來已經有一段時間了,所以我很困惑這個問題。我也嘗試過.val()
和.html()
。
我曾經見過類似的線程,並嘗試過在他們的解決方案中使用語法,但沒有任何工作。使用jQuery根據文本的鏈接改變鏈接的href屬性
我想根據鏈接文本更改某個頁面的某種類型的所有鏈接的href屬性。這裏是我現在有:
$('.class li a').attr('href', '#' + $(this).text());
$(this).text()
似乎沒有返回任何東西。自從我使用jQuery以來已經有一段時間了,所以我很困惑這個問題。我也嘗試過.val()
和.html()
。
在這種情況下,$(this)
沒有引用當前的a
標記。
你可以試試這個:
$('.class li a').each(function(){
$(this).attr('href', '#' + $(this).text());
});
謝謝,它已經有一段時間了。我會接受(10分鐘)。 – 2012-02-21 17:31:40
至少使用'$ .each()':它的循環速度要快幾倍:http://jsperf.com/jquery-each-vs-for-loops/7 – Jasper 2012-02-21 17:36:05
的this
參考$('.class li a').attr('href', '#' + $(this).text());
不是鏈接標記.. jQuery提供第二ARG也可以在其內部this
將參照鏈接標籤。所以一些功能像下面應該做的伎倆。
嘗試,
$('.class li a').attr('href', function() {
return '#' + $(this).text()
});
$(".class li a").each(function(){
$(this).attr('href', '#' + $(this).text());
});
除非你點擊鏈接,$(本)的.text()不適用,因爲它指的是什麼。你需要使用each()。 – j08691 2012-02-21 17:29:02