我的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")
有没有缩短这条线?
答案 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
检查它是否与您的环境兼容