17

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 セレクターをクールな方法で使用できますか?

4

3 に答える 3

39

より簡単な解決策:

var i = 0;
$('#somediv').append(
    'html before' + 
    (i > 0 ? '<img src="/img.jpg"/>': '') +
    'more html'
);
于 2012-10-15T15:18:52.523 に答える
6
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>');
于 2012-10-15T15:02:48.210 に答える
2

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

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

JSFiddleの概念実証

于 2012-10-15T15:06:52.087 に答える