Javascript 将多个或与一个和一起使用
我想使用multiple OR with one AND运算符,但在本例中,即使在填写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
#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>