以下是我遇到问题的代码。我得到JShint“期望一个赋值或函数,而是看到一个表达式”。
function checkVal(inputField) {
( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');
}
});
答案 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';