期望一个任务或功能,而是看到一个表达

时间:2015-09-03 20:39:35

标签: javascript

以下是我遇到问题的代码。我得到JShint“期望一个赋值或函数,而是看到一个表达式”。

function checkVal(inputField) {
        ( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');
    }
});

2 个答案:

答案 0 :(得分:4)

警告告诉您以下行可能是错误或错误:

( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');

它是一个使用ternary operator的表达式,如果前面的表达式为真,则返回?之后的值,否则返回:之后的值。所以基本上,它就像一个简短的if语句,导致一个赋值。

要删除警告,您需要将其分配给如下变量:

var yourVariable = ( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');

但是,对于您的情况,您可能并不真的想将此分配给任何内容,因此您应该只使用if语句。

答案 1 :(得分:2)

你应该在这里使用if块。

if( inputField.val() === '' ){
    inputField.prev('.cd-label').removeClass('float');
}
else{
    inputField.prev('.cd-label').addClass('float');
}

三元运算符(?:)只应在返回值的上下文中使用。如:

var x = condition ? 'a' : 'b';