下面是我遇到問題的代碼片段。我得到了JShint「期待一個賦值或函數,而是看到一個表達式」。預期的作業或功能,而不是看到一個表達式
function checkVal(inputField) {
(inputField.val() === '') ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');
}
});
下面是我遇到問題的代碼片段。我得到了JShint「期待一個賦值或函數,而是看到一個表達式」。預期的作業或功能,而不是看到一個表達式
function checkVal(inputField) {
(inputField.val() === '') ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');
}
});
該警告是告訴你,下面的行可能是一個錯誤或缺陷:
(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
聲明。
您應該在這裏使用if
塊。
if(inputField.val() === ''){
inputField.prev('.cd-label').removeClass('float');
}
else{
inputField.prev('.cd-label').addClass('float');
}
三元運算符(?:
)應該只在一個上下文中使用,其中它返回的值。如:
var x = condition ? 'a' : 'b';
idk如果是相關的,但他首先注意的是額外的'});'最後? – Markasoftware