if-statement里面的jquery Append()

时间:2012-10-15 15:00:50

标签: jquery html json append

在我的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上。 据我所知,google-ing无法做到这一点,但我可能错了?

如果确实“不可能”,那么Jquery中的第一个选择器是否可以以一种很酷的方式使用?

3 个答案:

答案 0 :(得分:32)

更简单的解决方案:

var i = 0;
$('#somediv').append(
    'html before' + 
    (i > 0 ? '<img src="/img.jpg"/>': '') +
    'more html'
);

答案 1 :(得分:4)

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>');

答案 2 :(得分:2)

我能想到的最简单的方法:

$('#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 proof-of-concept