2011-12-16 7 views
0

こんにちは私はプロジェクトにある最初のタグに基づいてプロジェクトにクラスを追加しようとしています。スパンメイククラス内の単語を使用

これまでのところ、この作品:

$('.project_footer').ready(function() { 
$('.project').addClass($('.tag a').text()); 
}); 

ただし、文書内のすべてのproject_footerにすべてのタグを見つけ、すべてのプロジェクトにクラスとしてそれを適用しています。私はちょうど最初のものを望んで、その個々のプロジェクトにそれを適用します。

アドバイスはありますか?

EDIT:

<div class="project blue"> 
<p>content content content</p> 
<div class="project_footer"> 
    <span class="tags"><a href="/projects/allblue">Blue</a></span> 

</div> 

</div> 
+0

各プロジェクトで最初の '.tag'だけを使用しますか?各 '.tag'の最初の' a'だけですか?これは最初の '.project'でのみ実行されますか?または最初の '.project_footer'のみで?あなたの質問には、そのうちの1つにしかなりたくないものが明確ではないので、何らかの明確化が必要です。答えはおそらく、 ':first'を右のセレクタに追加することですが、どのセレクタがあなたの質問をより良く理解するかに依存します。 – jfriend00

+0

さて、あなたの文書の構造を見る必要があります。それは少し不明です。 –

+0

あなたのための解決策を得て、それを今投稿... –

答えて

0

のようになります、このように:私はちょうど

$(function(){ 
    $('.project_footer').each(function() { 
     $(this).parents('.project').addClass($(this).find('.tags a').text().toLowerCase()); 
    }); 
}); 

作業:) http://jsfiddle.net/MA9CV/1

EDIT

それを表示するためにjsFiddleを作成10

複数のタグがある場合は、このjsFiddleのようにfind('.tags a')find('.tags:first-child a')に変更してください。http://jsfiddle.net/MA9CV/2/

+0

それは素晴らしいですが、私は複数のタグを持っている場合はどうなりますか? – uriah

+0

@uriah最初のものだけを望むならば、これを '... find( '。タグ:first-child a') ' –

+0

に変更してください。他のコメントも読んでいるはずです。 「each」は最初のプロジェクトを選ぶ唯一の方法ではない。これには理由がありますか? – uriah

0

私たちはいただきました!が起こっているが、おそらくこの$('.project:first-child').addClass($('.tag a:first-child').text());のラインで何かを参照するHTMLの詳細を参照する必要があるかもしれないと思うあなたが探しているものです。

0

なぜあなたが.page_footerを選択しているのかわかりませんか?準備ができて、すべてのDOM要素がロードされた後に起動します、そして、あなたのコードは、おそらくあなたは両方parenteach jQueryの関数を使用する必要があり、この

$(function() { $('.project').addClass($('.tag a').text()); }); 
関連する問題