Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery中简化if条件_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jQuery中简化if条件

Javascript 如何在jQuery中简化if条件,javascript,jquery,Javascript,Jquery,我正在寻找一种方法来实现以下目标: $("#a" || "#b").val() === "" 与之相反: $("#a").val() === "" || $("#b").val() === "" 有什么想法吗 提前谢谢 我不是javaScript方面的专家,但您是否与以下人员进行过交叉检查: 另外,一种方法是使用中的.each函数 我不是javaScript的专家,但您是否与以下人员进行过交叉检查: 另外,一种方法是使用中的.each函数 如果要避免重复空字符串“,可以执行以下操

我正在寻找一种方法来实现以下目标:

$("#a" || "#b").val() === ""
与之相反:

$("#a").val() === "" || $("#b").val() === ""
有什么想法吗


提前谢谢

我不是javaScript方面的专家,但您是否与以下人员进行过交叉检查:

另外,一种方法是使用中的.each函数


我不是javaScript的专家,但您是否与以下人员进行过交叉检查:

另外,一种方法是使用中的.each函数


如果要避免重复空字符串
,可以执行以下操作:

if ($.inArray([ $("#a").val(), $("#b").val() ], ""))
或者,如果您只想使用jQuery选择一次:

if ($.inArray($("#a, #b").map(function() { return this.value; }), ""))

但我自己都不会用。可以说,与“简单”的方式相比,它们效率更低、更人为,而且可读性肯定更低

如果要避免空字符串的重复,可以执行以下操作:

if ($.inArray([ $("#a").val(), $("#b").val() ], ""))
或者,如果您只想使用jQuery选择一次:

if ($.inArray($("#a, #b").map(function() { return this.value; }), ""))

但我自己都不会用。可以说,与“简单”的方式相比,它们效率更低、更人为,而且可读性肯定更低

对于两个要素,我认为您的示例尽可能简短,其含义也很清楚。但是,如果希望重复此类逻辑或计算更多元素,则可以通过创建一个简单的函数来计算集合中的任何项是否符合条件,从而对其进行改进

扩展jQuery JavaScript的语法(遗憾的是)不够简洁;你最终会得到这样的结果:

array.any( function(o){ return o.value === ""; } );
到目前为止,这还没救你什么。但是,如果您想迭代大量元素,它会变得更加优雅

// there could be zero inputs or 100 inputs; it doesn't matter
var result = $("input").any(function (o) {
    return o.value === "";
});
天然溶液 注意,我们在
any()
方法中不依赖jQuery。您也可以考虑一个本地的JavaScript解决方案,例如.

。 some()为中的每个元素执行一次回调函数 直到找到回调返回真值的数组为止。如果 如果找到这样的元素,有些元素会立即返回true

演示:

因为这是一个数组方法,所以它只对数组有效。不幸的是,这意味着
document.getElementsByTagName(“输入”)。由于
getElementsByTagName()
返回一个

当然,您可以将任何需要的内容推入一个数组,并在该数组上调用
some()
。示例中对
jQuery.makeArray()
的调用只是为了方便起见

抽象评价函数 演示:

可能会重用求值函数(例如测试空字符串)。这些可以进一步抽象

// ideally, this should NOT be left in global scope
function isEmpty(input) {
    return input.value === "";
}

// the check now fits nicely in one line.
if ($("input").any(isEmpty)) {
    alert("At least one input is empty.");
}
生成的方法调用非常干净:
$(“#a,#b”).any(isEmpty)
$(“输入”).any(isEmpty)



*同样值得注意的是,LINQ一直是。

对于两个元素,我相信您的示例尽可能简短,其含义也很清楚。但是,如果希望重复此类逻辑或计算更多元素,则可以通过创建一个简单的函数来计算集合中的任何项是否符合条件,从而对其进行改进

扩展jQuery JavaScript的语法(遗憾的是)不够简洁;你最终会得到这样的结果:

array.any( function(o){ return o.value === ""; } );
到目前为止,这还没救你什么。但是,如果您想迭代大量元素,它会变得更加优雅

// there could be zero inputs or 100 inputs; it doesn't matter
var result = $("input").any(function (o) {
    return o.value === "";
});
天然溶液 注意,我们在
any()
方法中不依赖jQuery。您也可以考虑一个本地的JavaScript解决方案,例如.

。 some()为中的每个元素执行一次回调函数 直到找到回调返回真值的数组为止。如果 如果找到这样的元素,有些元素会立即返回true

演示:

因为这是一个数组方法,所以它只对数组有效。不幸的是,这意味着
document.getElementsByTagName(“输入”)。由于
getElementsByTagName()
返回一个

当然,您可以将任何需要的内容推入一个数组,并在该数组上调用
some()
。示例中对
jQuery.makeArray()
的调用只是为了方便起见

抽象评价函数 演示:

可能会重用求值函数(例如测试空字符串)。这些可以进一步抽象

// ideally, this should NOT be left in global scope
function isEmpty(input) {
    return input.value === "";
}

// the check now fits nicely in one line.
if ($("input").any(isEmpty)) {
    alert("At least one input is empty.");
}
生成的方法调用非常干净:
$(“#a,#b”).any(isEmpty)
$(“输入”).any(isEmpty)


*还值得注意的是,LINQ一直都是这样的。

请尝试以下方式:

 if ($('#a,#b').is(':empty'))
    {
      alert("Either a or b is Empty!");
     }
试试我的

编辑:

如果它是一种类似文本框的输入类型,那么它会有点笨重,但会达到相同的效果:

if ($.inArray("",[ $("#a").val(), $("#b").val() ])>=0)
{
    alert("Either a or b is Empty!");   
}
请参见另一个

尝试这样做:

 if ($('#a,#b').is(':empty'))
    {
      alert("Either a or b is Empty!");
     }
试试我的

编辑:

如果它是一种类似文本框的输入类型,那么它会有点笨重,但会达到相同的效果:

if ($.inArray("",[ $("#a").val(), $("#b").val() ])>=0)
{
    alert("Either a or b is Empty!");   
}

看另一个

你说你不想这样做的方式有什么不对?它清晰、简洁,而且最有效!只是觉得可以简化一下!:]+你的问题很有意思,但我不知道有什么解决办法比你说你不想做的方式更适合你的问题吗?它清晰、简洁,而且最有效!只是觉得可以简化一下!:]+1你的问题很有趣。但是我不知道有没有更好的解决办法我认为更适合@MarcelGwerder谢谢你提供的信息。很高兴知道这一点。现在让我引用jQuery引用+1谢谢你。@MarcelGwerder谢谢你提供的信息。很高兴知道这一点。现在让我引用jQuery引用+1给你。输入正确吗。对于
输入
,它看起来总是返回true,因为它不能包含子项:这对输入正确吗。看起来它总是会返回t