web-dev-qa-db-ja.com

jquery Append()内のifステートメント

Jquery Append()の内部では、IFステートメントを実行して、最初のオブジェクトを除くすべてのオブジェクトに画像を含めることはしたくありません。

お気に入り:

var i = 0;

$('#divDetailsForSelectedInfo').append(
    '<div class="roundedAndBoxShade leftResultObject" id = "' + value.Query.Id + '">'+
    '<div class="leftResultObject_inner">' +
if (i > 0){
   <img src="/img.jpg"/>;
}
'<div>asdf</div>');

コードはJson + Jqueryによって生成され、インデックスファイルのdivにすべて追加されます。私が巨大なグーグルを通してこれをすることができないと言うことができた限り、しかし私は間違っているかもしれませんか?

それが本当に「不可能」である場合、Jqueryの:firstセレクターをいくつかのクールな方法で使用できますか?

15
Solders

より簡単な解決策:

var i = 0;
$('#somediv').append(
    'html before' + 
    (i > 0 ? '<img src="/img.jpg"/>': '') +
    'more html'
);
33
Kostia
var i = 0;
var str=''
if (i > 0){
  str =  '<img src="/img.jpg"/>;'
}
$('#divDetailsForSelectedInfo').append(
    '<div class="roundedAndBoxShade leftResultObject" id = "' + value.Query.Id + '">'+
    '<div class="leftResultObject_inner">' +str+'<div>asdf</div>');
4
Salil

これを行うために私が考えることができる最も簡単な方法:

$('#divDetailsForSelectedInfo').append(
    function(i) {
        return '<div class="roundedAndBoxShade leftResultObject" id = "' + value.Query.Id + '">' + '<div class="leftResultObject_inner">' + (i > 0 ? '<img src="/img.jpg"/>' : '');
    });

JS Fiddle概念実証

2
David Thomas