アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして、charliehamaといいます。
素人なもので、JavaScriptに詳しい方、教えて下さい。
次のコード(全体の中の一部)があります。
<!--
// -------------------------------------------------
// HTML生成関数
// -------------------------------------------------

function disp(){

//各要素を変数に格納
var $day = $(this).find('day').text();
var $label = $(this).find('label').text();
var $category = $(this).find('category').text();
var $content = $(this).find('content').text();
var $url = $(this).find('url').text();
var $target = $(this).find('target').text();

//HTMLを生成
$('<tr>'+
'<th>'+$day+'</th>'+
'<td class="label"><span class="'+$label+'">'+$category+'</span></td>'+
'<td><a href="'+$url+'" target="'+$target+'">'+$content+'</a></td>'+
'</tr>').appendTo('table.tbl tbody');
}
-->

変数$urlについて、if構文で分岐させるにはどのように記述すればよいですか?
(1) $urlがxxxの時、<td><span class="abc">'+$content+'</span></td> とする。
(2) $urlがそれ以外の時、<td><a href="'+$url+'" target="'+$target+'">'+$content+'</a></td>とする。
(3) (1)と(2)以外の処理は変更しない。

質問の仕方が悪ければご指摘下さい。
困っています。
どうかよろしくお願い申し上げます。

A 回答 (1件)

「HTMLを生成」で結合する前に、


$urlによる分岐処理を行って、
そこで生成した変数を結合する部分で使うのはいかがでしょうか・・・?

----------------------------------------------------
// $urlの値によって変わる変数の設定
var h = '<td><a href="'+$url+'" target="'+$target+'">'+$content+'</a></td>'
if( $url == 'xxx' ) {
h = '<td><span class="abc">'+$content+'</span></td>';
}

//HTMLを生成
$('<tr>'+
'<th>'+$day+'</th>'+
'<td class="label"><span class="'+$label+'">'+$category+'</span></td>'+
h +
'</tr>').appendTo('table.tbl tbody');
}
----------------------------------------------------

hという変数を使ってあらかじめ文字列を設定しておき、
hを結合するときに使うという流れで書いてみました。
ご参考になれば幸いです!
    • good
    • 0
この回答へのお礼

blue-goheimochiさん
ありがとうございます!!
やりたいことが完璧に実現できました。
おまけにJavaScriptの面白さの一端を感じることができました。
なかなか時間がないですが、自分で書けるように少しづつでも勉強していこうかなという気になりました。
またの機会がございましたらよろしくお願いいたします。

お礼日時:2013/07/01 10:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!