js - 缩短多个条件

时间:2014-03-15 09:38:21

标签: javascript conditional-statements

我的if语句如下。

if($("#a").css("display") == "none" && $("#b").css("display") == "none" && $("#c").css("display") == "none" && $("#d").css("display")  == "none" && $("#e").css("display") == "none" && $("#f").css("display") == "none")

有没有缩短这条线?

2 个答案:

答案 0 :(得分:3)

当然,像是

if ( ! $('#a, #b, #c, #d, #e, #f').is(':visible') ) { .... }
如果全部隐藏

返回true

答案 1 :(得分:1)

您可以将所有ID都放入数组中,然后使用Array.prototype.every函数,就像这样

var ids = ["a", "b", "c", "d", "e", "f"];
if (ids.every(function(id){return $("#" + id).css("display") == "none";})){
   ...
}

注意:您可以在运行时决定必须检查哪些ID,而不修改条件。

注1:作为@Jon Dvorak suggests,它仅在ES5中引入。您可以使用此compat table

检查它是否与您的环境兼容