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" /> 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" /> Spec Sheet</a> </td>' +
所以在整个三元运算符周围添加括号,以便它知道在哪里停止。
'<td> ' + ( x ? 'foo' : 'bar' ) + '</td>'
我正在使用 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" /> 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" /> Spec Sheet</a> </td>' +
所以在整个三元运算符周围添加括号,以便它知道在哪里停止。
'<td> ' + ( x ? 'foo' : 'bar' ) + '</td>'