2011-07-27 7 views
1

私は今スパンの内容をtitle属性にコピーする方法は?

var i, 
$spanc = jQuery("#menu").find("span").filter(":not(.stepnumber)"); 
     for(i in $spanc){ 
      $spanc.eq(i).attr("title", $spanc.eq(i).text()); 
     } 

このコードを持っているが、私はそれを簡単にすることができます方法はありますか? どんな提案をありがとうまたは

答えて

4

うんを助ける:

jQuery("#menu span:not(.stepnumber)").each(function() { 
    $(this).attr('title', $(this).text()); 
}); 

あなたはjQueryのコレクションを反復処理するために.each()を使用することができます。 thisは、ループ内の現在のオブジェクトを参照します。セレクタを1つの文字列に結合することもできます。$('#menu span')$('#menu').find('span')と同じものです。

+0

はい、内部的にjqueryは$( "#menu span")の場合にfindを使用しますので、$( "#menu")を実行するとfind( "span")は高速になります。 – paul

+0

.findが内部で使用されていても、2つの関数呼び出しが常により高価だと思います。このようにすれば、より簡単になり、パフォーマンスへの影響はごくわずかです。 –

+0

に同意します。感謝@タトゥー... – paul

関連する問題