jQuery 中的三元运算符未按预期工作

Ternary Operator in jQuery not working as expected

我正在使用 jQuery 函数构建一个 html table,基于我可用的一些 json。我使用 for loop 为我的 json 中的每个条目构建 tables。在一种情况下,我想检查 json 元素的值以查看它是否具有值。如果是这样,我想用图像构建一个 html link。我认为通过使用 .isEmptyObject() 函数检查值,使用三元语句是最干净的。当我这样做时,它没有按预期构建,并且表现得好像它只是一起放弃了那条线。这是我试过的。

    '<td> ' 
        + (!jQuery.isEmptyObject(json[i].pdf_files)) ? 
          ' <a href="http://site.example/assets/_images/products/pdf/' + 
          json[i].pdf_files + '" target="_blank"> <img src="img/pdf-32.png" alt="pdf" />&nbsp;Spec Sheet</a>'  : '' + 
   ' </td>'  + //continue with appending rest of table

如果我这样做就可以了:

'<td> ' + ' <a href="http://site.example/assets/_images/products/pdf/' + json[i].pdf_files + '" target="_blank"> <img src="img/pdf-32.png" alt="pdf" />&nbsp;Spec Sheet</a> </td>' +

所以在整个三元运算符周围添加括号,以便它知道在哪里停止。

'<td> ' + ( x ? 'foo' : 'bar' ) + '</td>'