Javascript 将多个或与一个和一起使用

Javascript 将多个或与一个和一起使用,javascript,jquery,Javascript,Jquery,我想使用multiple OR with one AND运算符,但在本例中,即使在填写#ads estate age时也会出现错误 $('a')。单击(函数(){ 如果($('ads subsubcategory').val()==92('ads subsubcategory').val()==103('ads subsubcategory').val()==97('ads subsubcategory').val()==100&&$('ads estate age').val().lengt

我想使用multiple OR with one AND运算符,但在本例中,即使在填写
#ads estate age
时也会出现错误

$('a')。单击(函数(){

如果($('ads subsubcategory').val()==92('ads subsubcategory').val()==103('ads subsubcategory').val()==97('ads subsubcategory').val()==100&&$('ads estate age').val().length不带括号的混合或和总是会产生不可靠的结果

在本例中,需要在或块周围添加括号,如下所示:

if ((optional || optional2 || optional3) && required) {
    //...
}
然而,事实证明,您的条件可以重写——并且在这个过程中大大简化以避免重复——因此括号是不必要的

let
subcat = $('#ads-subsubcategory').val(),
age = $('#ads-estate-age').val();
if ([92, 103, 97, 100].includes(subcat) && age.length === 0) {
    //...
}

注意
==0
1相反。(ads子类别=92 | | 103 | | | 97 | | | | 100&&ads遗产年龄。长度
&
|
具有更高的优先级,因此您需要相应地插入括号。这类似于
*
+/code>的工作方式。
a+b*c
表示
a+(b*c)
,类似地,
a | | b&&c
意味着
a | |(b&&c)
旁注;在一个变量中存储您正在进行的四次查找并重用该变量。@t最好使用Array.includesTrue。无论哪种方式,最好不要重复查找,:)每个人都听说过数学中的首字母缩略词BODMAS。类似的事情也发生在运算符优先级上。-逻辑门也值得你去思考一下
$(document).ready(function()
{
$('button').click(function() {
if (($('#ads-subsubcategory').val() == 92) || ($('#ads-subsubcategory').val() == 103) ||($('#ads-subsubcategory').val() == 97) || ($('#ads-subsubcategory').val() == 100) && $('#ads-estate-age').val().length <= 0) 
{
alert('its empty');
} else {
alert('ok');
}
});
});

<input type="text" id="ads-subsubcategory" value="92" />
<input type="text" id="ads-estate-age" />
<button>check</button>