你的代碼是:
$('.container').children().each(function (index, item2){
if ($(item2).val()=== '' && (item2.tagName.toLowerCase() !== 'label' || item2.tagName.toLowerCase() !== 'span')){
console.log("tag: "+item2.tagName.toLowerCase());
}
});
在這裏,你寫你的條件: - $(item2).val() === '' && (item2.tagName.toLowerCase() !== 'label' || item2.tagName.toLowerCase() !== 'span')
首先,如果你想允許非空值元素使用!==
而不是使用===
所有(如@Rory麥克羅桑建議)。
現在我們談談你的第二個條件,即 - (item2.tagName.toLowerCase() !== 'label' || item2.tagName.toLowerCase() !== 'span')
意味着這裏您允許,如果元素是LABEL
OR SPAN
。
所以,你的病情進入以下四種方式 -
(false || true) ====> true // Element is label
(true || false) ====> true // Element is span
(true || true) ====> true // Element is not a span and not a label
(false || false) ====> false // Element is a span and also an label [this condition never satisfied]
我想,在這裏你就錯了。您應該使用在以下條件(如果你不允許這兩個類型的元素) -
$(item2).val() === '' && (item2.tagName.toLowerCase() !== 'label' && item2.tagName.toLowerCase() !== 'span')
總之你必須使用&&/AND
而不是使用||/OR
。
它應該是'$(item2).val()!=='''。 – Andy
更正了它我想輸入如果當值爲空時對所有人抱歉 – Apostolos