2012-02-21 8 views
3

私は似たようなスレッドを見ていますが、その解決方法で構文を試しましたが、何も動作していません。リンクのhref属性をjQueryのテキストに基づいて変更する

特定のタイプのすべてのリンクのhref属性を、リンクのテキストに基づいて変更したいとします。ここで私は今持っているものです。

$('.class li a').attr('href', '#' + $(this).text()); 

$(this).text()は何かを返すされていないようです。私はjQueryで作業して以来、しばらくしているので、この問題で混乱しています。私も.val().html()を試しました。

+2

あなたがリンクをクリックしている場合を除き、$(この)の.text()が適用されません。 each()を使う必要があります。 – j08691

答えて

4

この文脈では、$(this)は現在のaタグを参照していません。

あなたはこれを試すことができます。

$('.class li a').each(function(){ 
     $(this).attr('href', '#' + $(this).text()); 
}); 
+0

ありがとう、それはしばらくありました。私ができる時に受け入れます(10分)。 –

+0

Atleastは '$ .each()'を使います:ループとして数倍高速です:http://jsperf.com/jquery-each-vs-for-loops/7 – Jasper

1

this参照$('.class li a').attr('href', '#' + $(this).text());がリンクタグではありません。.. jQueryのもthisがリンクタグ..だから、何かに言及されるの内側に機能する第2引数を提供しています以下のようにトリックを行う必要があります。それは何を意味しているため

DEMO

てみてください、

$('.class li a').attr('href', function() { 
    return '#' + $(this).text() 
}); 
0
$(".class li a").each(function(){ 
    $(this).attr('href', '#' + $(this).text()); 
}); 
関連する問題