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

时间:2015-02-27 14:50:17

标签: 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>");

1 个答案:

答案 0 :(得分:3)

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

$(".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> \
");

如果没有括号,任何一方的+运算符都会优先,整个表达式会有所不同。