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"/>' : '');
    });

JS Fiddle 概念验证

于 2012-10-15T15:06:52.087 回答