2010-11-18 10 views
0

jQuery-UIタブ付きウィジェットにいくつかのカスタム拡張を追加します。私がやろうとしていることの1つは、対応するタブで画像のalt属性の値を取得することによって、各タブパネル内のリンクのテキストを自動化することです。私が経験している問題は、最初のタブでのみ機能し、他のタブはnull値を返すことです。jQuery - 1つの属性から可視テキストとして使用する値を取得する

Here's a link to the test page.(それが問題に関連していないので、タブを実行するためのコードが含まれていません。)

そして、ここでは私に問題を与えているのjQueryのセクションです:

$('.imageTabs').find('.link').each(function() { 
    $(this).find('a').each(function() { 
     $(this).html($(this).parent('.link').parent('.ui-tabs-panel').prev('.ui-tabs-nav').children('li.' + $(this).parent('.link').parent('.ui-tabs-panel').attr('id')).children('a').children('img').attr('alt')); 
    }); 
}); 

答えて

3

あなたがしようとしています1行のIMOであまりにも多くを行うには、できるだけ$.find()の代わりにjQueryの組み込みセレクタを使用する必要があります。

便利なことに、各タブのhref#tab-1に設定されており、コンテンツ領域のjQueryセレクタとしても機能します。そう...作品?

$('.ui-tabs-nav a').each(function() { 
    var name = $(this).find('img').attr('alt'); 
    var ref = $(this).attr('href'); 
    $(ref).find('.link').text(name); 
}); 
+1

'$(this).attr( 'href')'の代わりに 'this.href' - 同じ結果、より良いパフォーマンスです。また、 '$ .find'は' $ .fn.find'と同じではありません。これはあなたがそこに言おうとしていると思います。しかし、ちょうど技術的 –

+0

私はそれを私が欲しかったことをするために得るために( '.link a')に変更しなければならなかったが、それはうまくいった!ありがとう! – Tom

関連する問題