在append()中使用三元表达式

use*_*273 -1 javascript jquery lambda

我尝试在 jQuery 中使用三元表达式append()。我已经检查了控制台,没有显示错误。问题是tr不附加到tbody.

$(".invoice table tbody").append("<tr> \
    <td> <span class=''>" + price.toFixed(0) == 0 ? Obs : 1 + "</span></td> \
    <td> <span class=''>" + price.toFixed(2) + "</span> </td> \
    <td> <input type='checkbox' name='removeItem' class='removeItemCheckBox'/></td> \
</tr>");
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 5

? :运算符不是“lambda 表达式”;这是条件运算符。问题是它的优先级非常低,所以你必须将它括起来:

$(".invoice table tbody").append("\
        <tr> \
          <td> <span class=''>" + (price.toFixed(0) == 0 ? Obs : 1) + "</span></td> \
          <td> <span class=''>" + price.toFixed(2) + "</span> </td> \
          <td> <input type='checkbox' name='removeItem' class='removeItemCheckBox'/></td> \
        </tr> \
");
Run Code Online (Sandbox Code Playgroud)

如果没有括号,+两边的运算符将优先,整个表达式将会不同。