JavaScript - 缩短多个条件

3

我有一个如下的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个回答

3
当然,这样的东西类似于:
if ( ! $('#a, #b, #c, #d, #e, #f').is(':visible') ) { .... }

如果全部隐藏则返回true。


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建议的那样,这仅在ES5中引入。您可以使用此兼容性表检查它是否与您的环境兼容。

@JanDvorak 谢谢 :) 已添加注释。 - thefourtheye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接