如果 td 没有值,我正在尝试隐藏输入字段。
我知道我们可以有这样的条件:
${condition ? true : false}
但是我怎么能有这样的内联运算符呢?
${condition ? true : false && false}
例:
${JsonObject ? JsonObject.Description : " " && $('#textbox').removeattr("style").hide()}
html 类似于这样:
`<td>
${JsonObject ? JsonObject.Description : " " && $('#textbox').removeattr("style").hide()}
</td>
`<div><input id="textbox"></div>
如果我理解正确,您希望真实的结果是描述,而虚假的结果是" "
的,并且具有从#textbox
中删除样式属性并将其隐藏的副作用。
我强烈建议不要这样做。像这样的副作用非常难以调试和维护。
但如果你真的想,先做副作用:
`<td>
${JsonObject ? JsonObject.Description : $('#textbox').removeattr("style").hide() && " "}
</td>
`<div><input id="textbox"></div>
这是有效的,因为hide
返回 jQuery 对象,这是真实的,所以(object) && " "
表达式会导致" "
。或者正如 James Long 指出的那样,你可以改用逗号运算符,然后hide
的返回值就无关紧要了:${JsonObject ? JsonObject.Description : ($('#textbox').removeattr("style").hide(), " ")}
(你实际上不需要这些()
,但它已经足够混乱了,没有它们就更令人困惑了,所以......
但同样,我不会。相反,我只会做:
`<td>
${JsonObject ? JsonObject.Description : " "}
</td>
`<div><input id="textbox"></div>
。然后在此模板文本之前或之后,有
if (!JsonObject) {
$('#textbox').removeattr("style").hide();
}