2012-03-07 15 views
2

特定のクラス名に基づいていくつかのHTMLを追加し、特定の場所に挿入する方法はありますか?コードは私が何をしようとしているのかを示していますが、これはハードコードされているので、動的にjQueryを使用したいと思います。jQuery - クラス名に基づいてHTMLを追加

<ul class="status clrfix"> 
<li class="green"><a href="">Completed</a><span class="arrow"></span></li> 
<li class="green"><a href="">Completed</a><span class="arrow"></span></li> 
<li class="blue"><a href="">In Progress</a><span class="current-stage"><img src="images/current-stage.png" /></span><span class="arrow"></span></li> 
<li>Not Started <span class="arrow"></span></li> 
<li class="last">Not Started <span class="arrow"></span></li> 
ので

、基本的に私は何をしたいです。クラス= "青" はその後、李内にこれを追加した場合:

<span class="current-stage"><img src="images/current-stage.png" /></span> 

これは私が試みたものですが、それは働いていない:

$(document).ready(function() { 

if($('ul.status li').hasClass('.blue')){ 
    $("span.current-stage").empty().html('<img src="../images/current-stage.png" />'); 
} 

});

答えて

2

を次のようにif文あなたを変更してみてください:

if($('ul.status li').hasClass('blue')){ 

hasClass()メソッドは、パラメータ、ないセレクタとしてクラス名を受け入れます。だから、クラスの前に.を残すことができます。

また、すでにあるものを削除せずにHTMLを追加する場合は、append()機能を使用してください。

$("span.current-stage").append('<span class="current-stage"><img src="../images/current-stage.png" /></span>'); 
+0

うわー!それは速く、それは画像を細かく注入しています。 Howver、私が本当にやりたいことは、イメージだけでなく、スパンも同様に入力することです: – user1254333

+0

if($( 'ul.status li')。hasClass( 'blue')){ \t \t $ ().empty().html( ''); \t} – user1254333

+0

心配しないで、「追加する」方法を示す答えを更新しました。 'html()'関数を使うと、既にそこにあるものが置き換えられ、 'In Progress'テキストがクリアされます。ですから、代わりに 'append()'を使うことをお勧めします。 –

0

多分このようなものでしょうか?

$('ul.status li.blue span.current-stage').empty().html('<img src="../images/current-stage.png" />');  
0

私はあなたが $( "span.current段階")を試みるべきだと思いHTML( ''); または.appendメソッドを使用することもできます。あなたが同じ結果のためにのみCSSを使用することができます

0

注:

ul.status li.blue span.current-stage { 
    display: inline-block; 
} 
ul.status li span.current-stage { 
    display: none; 
} 
+0

それで私はそれを見せてイメージを挿入するのですか?それは何も表示されません。 – user1254333

+0

このソリューションでは、jQueryコードは不要です。 liが青いクラスを持たない場合、CSSは自動的にspan.current-stageを隠します。 – odupont

関連する問題